// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Chat.proto

package pb.xiugou.x1.protobuf.chat;

public final class Chat {
  private Chat() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * <pre>
   *聊天频道
   * </pre>
   *
   * Protobuf enum {@code pb.PbChatChannel}
   */
  public enum PbChatChannel
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NO_CHAT = 0;</code>
     */
    NO_CHAT(0),
    /**
     * <pre>
     *世界（本服）聊天
     * </pre>
     *
     * <code>WORLD_CHAT = 1;</code>
     */
    WORLD_CHAT(1),
    /**
     * <pre>
     *跨服聊天
     * </pre>
     *
     * <code>CROSS_CHAT = 2;</code>
     */
    CROSS_CHAT(2),
    /**
     * <pre>
     *系统消息
     * </pre>
     *
     * <code>SYS_CHAT = 3;</code>
     */
    SYS_CHAT(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>NO_CHAT = 0;</code>
     */
    public static final int NO_CHAT_VALUE = 0;
    /**
     * <pre>
     *世界（本服）聊天
     * </pre>
     *
     * <code>WORLD_CHAT = 1;</code>
     */
    public static final int WORLD_CHAT_VALUE = 1;
    /**
     * <pre>
     *跨服聊天
     * </pre>
     *
     * <code>CROSS_CHAT = 2;</code>
     */
    public static final int CROSS_CHAT_VALUE = 2;
    /**
     * <pre>
     *系统消息
     * </pre>
     *
     * <code>SYS_CHAT = 3;</code>
     */
    public static final int SYS_CHAT_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 PbChatChannel 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 PbChatChannel forNumber(int value) {
      switch (value) {
        case 0: return NO_CHAT;
        case 1: return WORLD_CHAT;
        case 2: return CROSS_CHAT;
        case 3: return SYS_CHAT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PbChatChannel>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PbChatChannel> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PbChatChannel>() {
            public PbChatChannel findValueByNumber(int number) {
              return PbChatChannel.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      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 pb.xiugou.x1.protobuf.chat.Chat.getDescriptor().getEnumTypes().get(0);
    }

    private static final PbChatChannel[] VALUES = values();

    public static PbChatChannel 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 PbChatChannel(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:pb.PbChatChannel)
  }

  public interface ChatChannelInfoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChatChannelInfoRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    long getTargetId();
  }
  /**
   * <pre>
   *获取聊天频道信息
   * </pre>
   *
   * Protobuf type {@code pb.ChatChannelInfoRequest}
   */
  public  static final class ChatChannelInfoRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChatChannelInfoRequest)
      ChatChannelInfoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatChannelInfoRequest.newBuilder() to construct.
    private ChatChannelInfoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatChannelInfoRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatChannelInfoRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChatChannelInfoRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              channel_ = input.readInt32();
              break;
            }
            case 16: {

              targetId_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.class, pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChatChannelInfoRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 3600001;</code>
       */
      ID(3600001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 3600001;</code>
       */
      public static final int ID_VALUE = 3600001;


      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 Proto 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 Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 3600001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto 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 Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChatChannelInfoRequest.Proto)
    }

    public static final int CHANNEL_FIELD_NUMBER = 1;
    private int channel_;
    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    public int getChannel() {
      return channel_;
    }

    public static final int TARGET_ID_FIELD_NUMBER = 2;
    private long targetId_;
    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    public long getTargetId() {
      return targetId_;
    }

    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 (channel_ != 0) {
        output.writeInt32(1, channel_);
      }
      if (targetId_ != 0L) {
        output.writeInt64(2, targetId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, channel_);
      }
      if (targetId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, targetId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest other = (pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest) obj;

      if (getChannel()
          != other.getChannel()) return false;
      if (getTargetId()
          != other.getTargetId()) return false;
      if (!unknownFields.equals(other.unknownFields)) 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) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      hash = (37 * hash) + TARGET_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTargetId());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest 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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest 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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest 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(pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest 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;
    }
    /**
     * <pre>
     *获取聊天频道信息
     * </pre>
     *
     * Protobuf type {@code pb.ChatChannelInfoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChatChannelInfoRequest)
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.class, pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        channel_ = 0;

        targetId_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest build() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest result = new pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest(this);
        result.channel_ = channel_;
        result.targetId_ = targetId_;
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest.getDefaultInstance()) return this;
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.getTargetId() != 0L) {
          setTargetId(other.getTargetId());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int channel_ ;
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return The channel.
       */
      public int getChannel() {
        return channel_;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private long targetId_ ;
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return The targetId.
       */
      public long getTargetId() {
        return targetId_;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @param value The targetId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetId(long value) {
        
        targetId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetId() {
        
        targetId_ = 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:pb.ChatChannelInfoRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.ChatChannelInfoRequest)
    private static final pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChatChannelInfoRequest>
        PARSER = new com.google.protobuf.AbstractParser<ChatChannelInfoRequest>() {
      @java.lang.Override
      public ChatChannelInfoRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatChannelInfoRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChatChannelInfoRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChatChannelInfoRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChatChannelInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChatChannelInfoResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    long getTargetId();

    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData> 
        getChatDatasList();
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatDatas(int index);
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    int getChatDatasCount();
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> 
        getChatDatasOrBuilderList();
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDatasOrBuilder(
        int index);

    /**
     * <pre>
     *聊天冷却时间
     * </pre>
     *
     * <code>int64 chat_cd = 4;</code>
     * @return The chatCd.
     */
    long getChatCd();
  }
  /**
   * Protobuf type {@code pb.ChatChannelInfoResponse}
   */
  public  static final class ChatChannelInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChatChannelInfoResponse)
      ChatChannelInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatChannelInfoResponse.newBuilder() to construct.
    private ChatChannelInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatChannelInfoResponse() {
      chatDatas_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatChannelInfoResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChatChannelInfoResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              channel_ = input.readInt32();
              break;
            }
            case 16: {

              targetId_ = input.readInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                chatDatas_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.chat.Chat.PbChatData>();
                mutable_bitField0_ |= 0x00000001;
              }
              chatDatas_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.chat.Chat.PbChatData.parser(), extensionRegistry));
              break;
            }
            case 32: {

              chatCd_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          chatDatas_ = java.util.Collections.unmodifiableList(chatDatas_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.class, pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChatChannelInfoResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 3600001;</code>
       */
      ID(3600001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 3600001;</code>
       */
      public static final int ID_VALUE = 3600001;


      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 Proto 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 Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 3600001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto 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 Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChatChannelInfoResponse.Proto)
    }

    public static final int CHANNEL_FIELD_NUMBER = 1;
    private int channel_;
    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    public int getChannel() {
      return channel_;
    }

    public static final int TARGET_ID_FIELD_NUMBER = 2;
    private long targetId_;
    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    public long getTargetId() {
      return targetId_;
    }

    public static final int CHAT_DATAS_FIELD_NUMBER = 3;
    private java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData> chatDatas_;
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData> getChatDatasList() {
      return chatDatas_;
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> 
        getChatDatasOrBuilderList() {
      return chatDatas_;
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    public int getChatDatasCount() {
      return chatDatas_.size();
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatDatas(int index) {
      return chatDatas_.get(index);
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>repeated .pb.PbChatData chat_datas = 3;</code>
     */
    public pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDatasOrBuilder(
        int index) {
      return chatDatas_.get(index);
    }

    public static final int CHAT_CD_FIELD_NUMBER = 4;
    private long chatCd_;
    /**
     * <pre>
     *聊天冷却时间
     * </pre>
     *
     * <code>int64 chat_cd = 4;</code>
     * @return The chatCd.
     */
    public long getChatCd() {
      return chatCd_;
    }

    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 (channel_ != 0) {
        output.writeInt32(1, channel_);
      }
      if (targetId_ != 0L) {
        output.writeInt64(2, targetId_);
      }
      for (int i = 0; i < chatDatas_.size(); i++) {
        output.writeMessage(3, chatDatas_.get(i));
      }
      if (chatCd_ != 0L) {
        output.writeInt64(4, chatCd_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, channel_);
      }
      if (targetId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, targetId_);
      }
      for (int i = 0; i < chatDatas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, chatDatas_.get(i));
      }
      if (chatCd_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, chatCd_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse other = (pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse) obj;

      if (getChannel()
          != other.getChannel()) return false;
      if (getTargetId()
          != other.getTargetId()) return false;
      if (!getChatDatasList()
          .equals(other.getChatDatasList())) return false;
      if (getChatCd()
          != other.getChatCd()) return false;
      if (!unknownFields.equals(other.unknownFields)) 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) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      hash = (37 * hash) + TARGET_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTargetId());
      if (getChatDatasCount() > 0) {
        hash = (37 * hash) + CHAT_DATAS_FIELD_NUMBER;
        hash = (53 * hash) + getChatDatasList().hashCode();
      }
      hash = (37 * hash) + CHAT_CD_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getChatCd());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse 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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse 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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse 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(pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse 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 pb.ChatChannelInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChatChannelInfoResponse)
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.class, pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getChatDatasFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        channel_ = 0;

        targetId_ = 0L;

        if (chatDatasBuilder_ == null) {
          chatDatas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          chatDatasBuilder_.clear();
        }
        chatCd_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatChannelInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse build() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse result = new pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse(this);
        int from_bitField0_ = bitField0_;
        result.channel_ = channel_;
        result.targetId_ = targetId_;
        if (chatDatasBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            chatDatas_ = java.util.Collections.unmodifiableList(chatDatas_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.chatDatas_ = chatDatas_;
        } else {
          result.chatDatas_ = chatDatasBuilder_.build();
        }
        result.chatCd_ = chatCd_;
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse.getDefaultInstance()) return this;
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.getTargetId() != 0L) {
          setTargetId(other.getTargetId());
        }
        if (chatDatasBuilder_ == null) {
          if (!other.chatDatas_.isEmpty()) {
            if (chatDatas_.isEmpty()) {
              chatDatas_ = other.chatDatas_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureChatDatasIsMutable();
              chatDatas_.addAll(other.chatDatas_);
            }
            onChanged();
          }
        } else {
          if (!other.chatDatas_.isEmpty()) {
            if (chatDatasBuilder_.isEmpty()) {
              chatDatasBuilder_.dispose();
              chatDatasBuilder_ = null;
              chatDatas_ = other.chatDatas_;
              bitField0_ = (bitField0_ & ~0x00000001);
              chatDatasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChatDatasFieldBuilder() : null;
            } else {
              chatDatasBuilder_.addAllMessages(other.chatDatas_);
            }
          }
        }
        if (other.getChatCd() != 0L) {
          setChatCd(other.getChatCd());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int channel_ ;
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return The channel.
       */
      public int getChannel() {
        return channel_;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private long targetId_ ;
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return The targetId.
       */
      public long getTargetId() {
        return targetId_;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @param value The targetId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetId(long value) {
        
        targetId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetId() {
        
        targetId_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData> chatDatas_ =
        java.util.Collections.emptyList();
      private void ensureChatDatasIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          chatDatas_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.chat.Chat.PbChatData>(chatDatas_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> chatDatasBuilder_;

      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData> getChatDatasList() {
        if (chatDatasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(chatDatas_);
        } else {
          return chatDatasBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public int getChatDatasCount() {
        if (chatDatasBuilder_ == null) {
          return chatDatas_.size();
        } else {
          return chatDatasBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatDatas(int index) {
        if (chatDatasBuilder_ == null) {
          return chatDatas_.get(index);
        } else {
          return chatDatasBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder setChatDatas(
          int index, pb.xiugou.x1.protobuf.chat.Chat.PbChatData value) {
        if (chatDatasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChatDatasIsMutable();
          chatDatas_.set(index, value);
          onChanged();
        } else {
          chatDatasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder setChatDatas(
          int index, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder builderForValue) {
        if (chatDatasBuilder_ == null) {
          ensureChatDatasIsMutable();
          chatDatas_.set(index, builderForValue.build());
          onChanged();
        } else {
          chatDatasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder addChatDatas(pb.xiugou.x1.protobuf.chat.Chat.PbChatData value) {
        if (chatDatasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChatDatasIsMutable();
          chatDatas_.add(value);
          onChanged();
        } else {
          chatDatasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder addChatDatas(
          int index, pb.xiugou.x1.protobuf.chat.Chat.PbChatData value) {
        if (chatDatasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChatDatasIsMutable();
          chatDatas_.add(index, value);
          onChanged();
        } else {
          chatDatasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder addChatDatas(
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder builderForValue) {
        if (chatDatasBuilder_ == null) {
          ensureChatDatasIsMutable();
          chatDatas_.add(builderForValue.build());
          onChanged();
        } else {
          chatDatasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder addChatDatas(
          int index, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder builderForValue) {
        if (chatDatasBuilder_ == null) {
          ensureChatDatasIsMutable();
          chatDatas_.add(index, builderForValue.build());
          onChanged();
        } else {
          chatDatasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder addAllChatDatas(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.chat.Chat.PbChatData> values) {
        if (chatDatasBuilder_ == null) {
          ensureChatDatasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, chatDatas_);
          onChanged();
        } else {
          chatDatasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder clearChatDatas() {
        if (chatDatasBuilder_ == null) {
          chatDatas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          chatDatasBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public Builder removeChatDatas(int index) {
        if (chatDatasBuilder_ == null) {
          ensureChatDatasIsMutable();
          chatDatas_.remove(index);
          onChanged();
        } else {
          chatDatasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder getChatDatasBuilder(
          int index) {
        return getChatDatasFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDatasOrBuilder(
          int index) {
        if (chatDatasBuilder_ == null) {
          return chatDatas_.get(index);  } else {
          return chatDatasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> 
           getChatDatasOrBuilderList() {
        if (chatDatasBuilder_ != null) {
          return chatDatasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(chatDatas_);
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder addChatDatasBuilder() {
        return getChatDatasFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance());
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder addChatDatasBuilder(
          int index) {
        return getChatDatasFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance());
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>repeated .pb.PbChatData chat_datas = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder> 
           getChatDatasBuilderList() {
        return getChatDatasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> 
          getChatDatasFieldBuilder() {
        if (chatDatasBuilder_ == null) {
          chatDatasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder>(
                  chatDatas_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          chatDatas_ = null;
        }
        return chatDatasBuilder_;
      }

      private long chatCd_ ;
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 4;</code>
       * @return The chatCd.
       */
      public long getChatCd() {
        return chatCd_;
      }
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 4;</code>
       * @param value The chatCd to set.
       * @return This builder for chaining.
       */
      public Builder setChatCd(long value) {
        
        chatCd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatCd() {
        
        chatCd_ = 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:pb.ChatChannelInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.ChatChannelInfoResponse)
    private static final pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChatChannelInfoResponse>
        PARSER = new com.google.protobuf.AbstractParser<ChatChannelInfoResponse>() {
      @java.lang.Override
      public ChatChannelInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatChannelInfoResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChatChannelInfoResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChatChannelInfoResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.ChatChannelInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChatToRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChatToRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    long getTargetId();

    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 3;</code>
     * @return The content.
     */
    java.lang.String getContent();
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 3;</code>
     * @return The bytes for content.
     */
    com.google.protobuf.ByteString
        getContentBytes();
  }
  /**
   * <pre>
   *在某个频道进行聊天
   * </pre>
   *
   * Protobuf type {@code pb.ChatToRequest}
   */
  public  static final class ChatToRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChatToRequest)
      ChatToRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatToRequest.newBuilder() to construct.
    private ChatToRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatToRequest() {
      content_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatToRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChatToRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              channel_ = input.readInt32();
              break;
            }
            case 16: {

              targetId_ = input.readInt64();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              content_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChatToRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 3600002;</code>
       */
      ID(3600002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 3600002;</code>
       */
      public static final int ID_VALUE = 3600002;


      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 Proto 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 Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 3600002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto 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 Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChatToRequest.Proto)
    }

    public static final int CHANNEL_FIELD_NUMBER = 1;
    private int channel_;
    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    public int getChannel() {
      return channel_;
    }

    public static final int TARGET_ID_FIELD_NUMBER = 2;
    private long targetId_;
    /**
     * <pre>
     *目标ID，好友聊天时传玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    public long getTargetId() {
      return targetId_;
    }

    public static final int CONTENT_FIELD_NUMBER = 3;
    private volatile java.lang.Object content_;
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 3;</code>
     * @return The content.
     */
    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;
      }
    }
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 3;</code>
     * @return The bytes for content.
     */
    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 (channel_ != 0) {
        output.writeInt32(1, channel_);
      }
      if (targetId_ != 0L) {
        output.writeInt64(2, targetId_);
      }
      if (!getContentBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, channel_);
      }
      if (targetId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, targetId_);
      }
      if (!getContentBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest other = (pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest) obj;

      if (getChannel()
          != other.getChannel()) return false;
      if (getTargetId()
          != other.getTargetId()) return false;
      if (!getContent()
          .equals(other.getContent())) return false;
      if (!unknownFields.equals(other.unknownFields)) 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) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      hash = (37 * hash) + TARGET_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTargetId());
      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
      hash = (53 * hash) + getContent().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest 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(pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest 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;
    }
    /**
     * <pre>
     *在某个频道进行聊天
     * </pre>
     *
     * Protobuf type {@code pb.ChatToRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChatToRequest)
        pb.xiugou.x1.protobuf.chat.Chat.ChatToRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        channel_ = 0;

        targetId_ = 0L;

        content_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest build() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest result = new pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest(this);
        result.channel_ = channel_;
        result.targetId_ = targetId_;
        result.content_ = content_;
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest.getDefaultInstance()) return this;
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.getTargetId() != 0L) {
          setTargetId(other.getTargetId());
        }
        if (!other.getContent().isEmpty()) {
          content_ = other.content_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int channel_ ;
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return The channel.
       */
      public int getChannel() {
        return channel_;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private long targetId_ ;
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return The targetId.
       */
      public long getTargetId() {
        return targetId_;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @param value The targetId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetId(long value) {
        
        targetId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *目标ID，好友聊天时传玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetId() {
        
        targetId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object content_ = "";
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 3;</code>
       * @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;
        }
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 3;</code>
       * @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;
        }
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 3;</code>
       * @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;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearContent() {
        
        content_ = getDefaultInstance().getContent();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 3;</code>
       * @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;
        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:pb.ChatToRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.ChatToRequest)
    private static final pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChatToRequest>
        PARSER = new com.google.protobuf.AbstractParser<ChatToRequest>() {
      @java.lang.Override
      public ChatToRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatToRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChatToRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChatToRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.ChatToRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChatToResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChatToResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <pre>
     *聊天冷却时间
     * </pre>
     *
     * <code>int64 chat_cd = 2;</code>
     * @return The chatCd.
     */
    long getChatCd();
  }
  /**
   * Protobuf type {@code pb.ChatToResponse}
   */
  public  static final class ChatToResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChatToResponse)
      ChatToResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatToResponse.newBuilder() to construct.
    private ChatToResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatToResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatToResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChatToResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              channel_ = input.readInt32();
              break;
            }
            case 16: {

              chatCd_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChatToResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 3600002;</code>
       */
      ID(3600002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 3600002;</code>
       */
      public static final int ID_VALUE = 3600002;


      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 Proto 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 Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 3600002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto 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 Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChatToResponse.Proto)
    }

    public static final int CHANNEL_FIELD_NUMBER = 1;
    private int channel_;
    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    public int getChannel() {
      return channel_;
    }

    public static final int CHAT_CD_FIELD_NUMBER = 2;
    private long chatCd_;
    /**
     * <pre>
     *聊天冷却时间
     * </pre>
     *
     * <code>int64 chat_cd = 2;</code>
     * @return The chatCd.
     */
    public long getChatCd() {
      return chatCd_;
    }

    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 (channel_ != 0) {
        output.writeInt32(1, channel_);
      }
      if (chatCd_ != 0L) {
        output.writeInt64(2, chatCd_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, channel_);
      }
      if (chatCd_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, chatCd_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse other = (pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse) obj;

      if (getChannel()
          != other.getChannel()) return false;
      if (getChatCd()
          != other.getChatCd()) return false;
      if (!unknownFields.equals(other.unknownFields)) 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) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      hash = (37 * hash) + CHAT_CD_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getChatCd());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse 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(pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse 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 pb.ChatToResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChatToResponse)
        pb.xiugou.x1.protobuf.chat.Chat.ChatToResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        channel_ = 0;

        chatCd_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse build() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse result = new pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse(this);
        result.channel_ = channel_;
        result.chatCd_ = chatCd_;
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse.getDefaultInstance()) return this;
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.getChatCd() != 0L) {
          setChatCd(other.getChatCd());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int channel_ ;
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return The channel.
       */
      public int getChannel() {
        return channel_;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private long chatCd_ ;
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 2;</code>
       * @return The chatCd.
       */
      public long getChatCd() {
        return chatCd_;
      }
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 2;</code>
       * @param value The chatCd to set.
       * @return This builder for chaining.
       */
      public Builder setChatCd(long value) {
        
        chatCd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *聊天冷却时间
       * </pre>
       *
       * <code>int64 chat_cd = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatCd() {
        
        chatCd_ = 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:pb.ChatToResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.ChatToResponse)
    private static final pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChatToResponse>
        PARSER = new com.google.protobuf.AbstractParser<ChatToResponse>() {
      @java.lang.Override
      public ChatToResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatToResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChatToResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChatToResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.ChatToResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChatToMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChatToMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <pre>
     *目标ID，好友聊天是玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    long getTargetId();

    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     * @return Whether the chatData field is set.
     */
    boolean hasChatData();
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     * @return The chatData.
     */
    pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatData();
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     */
    pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDataOrBuilder();
  }
  /**
   * <pre>
   *聊天消息推送
   * </pre>
   *
   * Protobuf type {@code pb.ChatToMessage}
   */
  public  static final class ChatToMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChatToMessage)
      ChatToMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatToMessage.newBuilder() to construct.
    private ChatToMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatToMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatToMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChatToMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              channel_ = input.readInt32();
              break;
            }
            case 16: {

              targetId_ = input.readInt64();
              break;
            }
            case 26: {
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder subBuilder = null;
              if (chatData_ != null) {
                subBuilder = chatData_.toBuilder();
              }
              chatData_ = input.readMessage(pb.xiugou.x1.protobuf.chat.Chat.PbChatData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatData_);
                chatData_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChatToMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 3600003;</code>
       */
      ID(3600003),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 3600003;</code>
       */
      public static final int ID_VALUE = 3600003;


      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 Proto 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 Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 3600003: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto 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 Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChatToMessage.Proto)
    }

    public static final int CHANNEL_FIELD_NUMBER = 1;
    private int channel_;
    /**
     * <pre>
     *频道
     * </pre>
     *
     * <code>int32 channel = 1;</code>
     * @return The channel.
     */
    public int getChannel() {
      return channel_;
    }

    public static final int TARGET_ID_FIELD_NUMBER = 2;
    private long targetId_;
    /**
     * <pre>
     *目标ID，好友聊天是玩家ID
     * </pre>
     *
     * <code>int64 target_id = 2;</code>
     * @return The targetId.
     */
    public long getTargetId() {
      return targetId_;
    }

    public static final int CHAT_DATA_FIELD_NUMBER = 3;
    private pb.xiugou.x1.protobuf.chat.Chat.PbChatData chatData_;
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     * @return Whether the chatData field is set.
     */
    public boolean hasChatData() {
      return chatData_ != null;
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     * @return The chatData.
     */
    public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatData() {
      return chatData_ == null ? pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance() : chatData_;
    }
    /**
     * <pre>
     *聊天信息
     * </pre>
     *
     * <code>.pb.PbChatData chat_data = 3;</code>
     */
    public pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDataOrBuilder() {
      return getChatData();
    }

    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 (channel_ != 0) {
        output.writeInt32(1, channel_);
      }
      if (targetId_ != 0L) {
        output.writeInt64(2, targetId_);
      }
      if (chatData_ != null) {
        output.writeMessage(3, getChatData());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, channel_);
      }
      if (targetId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, targetId_);
      }
      if (chatData_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getChatData());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage other = (pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage) obj;

      if (getChannel()
          != other.getChannel()) return false;
      if (getTargetId()
          != other.getTargetId()) return false;
      if (hasChatData() != other.hasChatData()) return false;
      if (hasChatData()) {
        if (!getChatData()
            .equals(other.getChatData())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) 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) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      hash = (37 * hash) + TARGET_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTargetId());
      if (hasChatData()) {
        hash = (37 * hash) + CHAT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getChatData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage 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 pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage 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(pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage 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;
    }
    /**
     * <pre>
     *聊天消息推送
     * </pre>
     *
     * Protobuf type {@code pb.ChatToMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChatToMessage)
        pb.xiugou.x1.protobuf.chat.Chat.ChatToMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.class, pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        channel_ = 0;

        targetId_ = 0L;

        if (chatDataBuilder_ == null) {
          chatData_ = null;
        } else {
          chatData_ = null;
          chatDataBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_ChatToMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage build() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage result = new pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage(this);
        result.channel_ = channel_;
        result.targetId_ = targetId_;
        if (chatDataBuilder_ == null) {
          result.chatData_ = chatData_;
        } else {
          result.chatData_ = chatDataBuilder_.build();
        }
        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 pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage.getDefaultInstance()) return this;
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.getTargetId() != 0L) {
          setTargetId(other.getTargetId());
        }
        if (other.hasChatData()) {
          mergeChatData(other.getChatData());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int channel_ ;
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return The channel.
       */
      public int getChannel() {
        return channel_;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *频道
       * </pre>
       *
       * <code>int32 channel = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private long targetId_ ;
      /**
       * <pre>
       *目标ID，好友聊天是玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return The targetId.
       */
      public long getTargetId() {
        return targetId_;
      }
      /**
       * <pre>
       *目标ID，好友聊天是玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @param value The targetId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetId(long value) {
        
        targetId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *目标ID，好友聊天是玩家ID
       * </pre>
       *
       * <code>int64 target_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetId() {
        
        targetId_ = 0L;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.chat.Chat.PbChatData chatData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> chatDataBuilder_;
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       * @return Whether the chatData field is set.
       */
      public boolean hasChatData() {
        return chatDataBuilder_ != null || chatData_ != null;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       * @return The chatData.
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getChatData() {
        if (chatDataBuilder_ == null) {
          return chatData_ == null ? pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance() : chatData_;
        } else {
          return chatDataBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public Builder setChatData(pb.xiugou.x1.protobuf.chat.Chat.PbChatData value) {
        if (chatDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatData_ = value;
          onChanged();
        } else {
          chatDataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public Builder setChatData(
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder builderForValue) {
        if (chatDataBuilder_ == null) {
          chatData_ = builderForValue.build();
          onChanged();
        } else {
          chatDataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public Builder mergeChatData(pb.xiugou.x1.protobuf.chat.Chat.PbChatData value) {
        if (chatDataBuilder_ == null) {
          if (chatData_ != null) {
            chatData_ =
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData.newBuilder(chatData_).mergeFrom(value).buildPartial();
          } else {
            chatData_ = value;
          }
          onChanged();
        } else {
          chatDataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public Builder clearChatData() {
        if (chatDataBuilder_ == null) {
          chatData_ = null;
          onChanged();
        } else {
          chatData_ = null;
          chatDataBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder getChatDataBuilder() {
        
        onChanged();
        return getChatDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder getChatDataOrBuilder() {
        if (chatDataBuilder_ != null) {
          return chatDataBuilder_.getMessageOrBuilder();
        } else {
          return chatData_ == null ?
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance() : chatData_;
        }
      }
      /**
       * <pre>
       *聊天信息
       * </pre>
       *
       * <code>.pb.PbChatData chat_data = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder> 
          getChatDataFieldBuilder() {
        if (chatDataBuilder_ == null) {
          chatDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder, pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder>(
                  getChatData(),
                  getParentForChildren(),
                  isClean());
          chatData_ = null;
        }
        return chatDataBuilder_;
      }
      @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:pb.ChatToMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.ChatToMessage)
    private static final pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChatToMessage>
        PARSER = new com.google.protobuf.AbstractParser<ChatToMessage>() {
      @java.lang.Override
      public ChatToMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatToMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChatToMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChatToMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.ChatToMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbChatDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbChatData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *聊天ID
     * </pre>
     *
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    long getId();

    /**
     * <pre>
     *说话者ID
     * </pre>
     *
     * <code>int64 speaker_id = 2;</code>
     * @return The speakerId.
     */
    long getSpeakerId();

    /**
     * <pre>
     *说话者昵称
     * </pre>
     *
     * <code>string speaker_nick = 3;</code>
     * @return The speakerNick.
     */
    java.lang.String getSpeakerNick();
    /**
     * <pre>
     *说话者昵称
     * </pre>
     *
     * <code>string speaker_nick = 3;</code>
     * @return The bytes for speakerNick.
     */
    com.google.protobuf.ByteString
        getSpeakerNickBytes();

    /**
     * <pre>
     *说话者头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The head.
     */
    java.lang.String getHead();
    /**
     * <pre>
     *说话者头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The bytes for head.
     */
    com.google.protobuf.ByteString
        getHeadBytes();

    /**
     * <pre>
     *性别
     * </pre>
     *
     * <code>int32 sex = 5;</code>
     * @return The sex.
     */
    int getSex();

    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 6;</code>
     * @return The content.
     */
    java.lang.String getContent();
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 6;</code>
     * @return The bytes for content.
     */
    com.google.protobuf.ByteString
        getContentBytes();

    /**
     * <pre>
     *VIP等级
     * </pre>
     *
     * <code>int32 vip_level = 7;</code>
     * @return The vipLevel.
     */
    int getVipLevel();

    /**
     * <pre>
     *角色等级
     * </pre>
     *
     * <code>int32 level = 8;</code>
     * @return The level.
     */
    int getLevel();

    /**
     * <pre>
     *说话时间
     * </pre>
     *
     * <code>int64 time = 9;</code>
     * @return The time.
     */
    long getTime();
  }
  /**
   * <pre>
   *聊天数据，暂定，目前设计得比较简单
   * </pre>
   *
   * Protobuf type {@code pb.PbChatData}
   */
  public  static final class PbChatData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbChatData)
      PbChatDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbChatData.newBuilder() to construct.
    private PbChatData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbChatData() {
      speakerNick_ = "";
      head_ = "";
      content_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbChatData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbChatData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              id_ = input.readInt64();
              break;
            }
            case 16: {

              speakerId_ = input.readInt64();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              speakerNick_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              head_ = s;
              break;
            }
            case 40: {

              sex_ = input.readInt32();
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              content_ = s;
              break;
            }
            case 56: {

              vipLevel_ = input.readInt32();
              break;
            }
            case 64: {

              level_ = input.readInt32();
              break;
            }
            case 72: {

              time_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_PbChatData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_PbChatData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.chat.Chat.PbChatData.class, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <pre>
     *聊天ID
     * </pre>
     *
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    public long getId() {
      return id_;
    }

    public static final int SPEAKER_ID_FIELD_NUMBER = 2;
    private long speakerId_;
    /**
     * <pre>
     *说话者ID
     * </pre>
     *
     * <code>int64 speaker_id = 2;</code>
     * @return The speakerId.
     */
    public long getSpeakerId() {
      return speakerId_;
    }

    public static final int SPEAKER_NICK_FIELD_NUMBER = 3;
    private volatile java.lang.Object speakerNick_;
    /**
     * <pre>
     *说话者昵称
     * </pre>
     *
     * <code>string speaker_nick = 3;</code>
     * @return The speakerNick.
     */
    public java.lang.String getSpeakerNick() {
      java.lang.Object ref = speakerNick_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        speakerNick_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *说话者昵称
     * </pre>
     *
     * <code>string speaker_nick = 3;</code>
     * @return The bytes for speakerNick.
     */
    public com.google.protobuf.ByteString
        getSpeakerNickBytes() {
      java.lang.Object ref = speakerNick_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        speakerNick_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEAD_FIELD_NUMBER = 4;
    private volatile java.lang.Object head_;
    /**
     * <pre>
     *说话者头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The head.
     */
    public java.lang.String getHead() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        head_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *说话者头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The bytes for head.
     */
    public com.google.protobuf.ByteString
        getHeadBytes() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        head_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEX_FIELD_NUMBER = 5;
    private int sex_;
    /**
     * <pre>
     *性别
     * </pre>
     *
     * <code>int32 sex = 5;</code>
     * @return The sex.
     */
    public int getSex() {
      return sex_;
    }

    public static final int CONTENT_FIELD_NUMBER = 6;
    private volatile java.lang.Object content_;
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 6;</code>
     * @return The content.
     */
    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;
      }
    }
    /**
     * <pre>
     *说话内容
     * </pre>
     *
     * <code>string content = 6;</code>
     * @return The bytes for content.
     */
    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 VIP_LEVEL_FIELD_NUMBER = 7;
    private int vipLevel_;
    /**
     * <pre>
     *VIP等级
     * </pre>
     *
     * <code>int32 vip_level = 7;</code>
     * @return The vipLevel.
     */
    public int getVipLevel() {
      return vipLevel_;
    }

    public static final int LEVEL_FIELD_NUMBER = 8;
    private int level_;
    /**
     * <pre>
     *角色等级
     * </pre>
     *
     * <code>int32 level = 8;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    public static final int TIME_FIELD_NUMBER = 9;
    private long time_;
    /**
     * <pre>
     *说话时间
     * </pre>
     *
     * <code>int64 time = 9;</code>
     * @return The time.
     */
    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 (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (speakerId_ != 0L) {
        output.writeInt64(2, speakerId_);
      }
      if (!getSpeakerNickBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, speakerNick_);
      }
      if (!getHeadBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, head_);
      }
      if (sex_ != 0) {
        output.writeInt32(5, sex_);
      }
      if (!getContentBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, content_);
      }
      if (vipLevel_ != 0) {
        output.writeInt32(7, vipLevel_);
      }
      if (level_ != 0) {
        output.writeInt32(8, level_);
      }
      if (time_ != 0L) {
        output.writeInt64(9, time_);
      }
      unknownFields.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 (speakerId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, speakerId_);
      }
      if (!getSpeakerNickBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, speakerNick_);
      }
      if (!getHeadBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, head_);
      }
      if (sex_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, sex_);
      }
      if (!getContentBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, content_);
      }
      if (vipLevel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, vipLevel_);
      }
      if (level_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, level_);
      }
      if (time_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, time_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.chat.Chat.PbChatData)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.chat.Chat.PbChatData other = (pb.xiugou.x1.protobuf.chat.Chat.PbChatData) obj;

      if (getId()
          != other.getId()) return false;
      if (getSpeakerId()
          != other.getSpeakerId()) return false;
      if (!getSpeakerNick()
          .equals(other.getSpeakerNick())) return false;
      if (!getHead()
          .equals(other.getHead())) return false;
      if (getSex()
          != other.getSex()) return false;
      if (!getContent()
          .equals(other.getContent())) return false;
      if (getVipLevel()
          != other.getVipLevel()) return false;
      if (getLevel()
          != other.getLevel()) return false;
      if (getTime()
          != other.getTime()) return false;
      if (!unknownFields.equals(other.unknownFields)) 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) + SPEAKER_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSpeakerId());
      hash = (37 * hash) + SPEAKER_NICK_FIELD_NUMBER;
      hash = (53 * hash) + getSpeakerNick().hashCode();
      hash = (37 * hash) + HEAD_FIELD_NUMBER;
      hash = (53 * hash) + getHead().hashCode();
      hash = (37 * hash) + SEX_FIELD_NUMBER;
      hash = (53 * hash) + getSex();
      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
      hash = (53 * hash) + getContent().hashCode();
      hash = (37 * hash) + VIP_LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getVipLevel();
      hash = (37 * hash) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      hash = (37 * hash) + TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData 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 pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData 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 pb.xiugou.x1.protobuf.chat.Chat.PbChatData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData 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(pb.xiugou.x1.protobuf.chat.Chat.PbChatData 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;
    }
    /**
     * <pre>
     *聊天数据，暂定，目前设计得比较简单
     * </pre>
     *
     * Protobuf type {@code pb.PbChatData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbChatData)
        pb.xiugou.x1.protobuf.chat.Chat.PbChatDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_PbChatData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_PbChatData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.chat.Chat.PbChatData.class, pb.xiugou.x1.protobuf.chat.Chat.PbChatData.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.chat.Chat.PbChatData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = 0L;

        speakerId_ = 0L;

        speakerNick_ = "";

        head_ = "";

        sex_ = 0;

        content_ = "";

        vipLevel_ = 0;

        level_ = 0;

        time_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.internal_static_pb_PbChatData_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData build() {
        pb.xiugou.x1.protobuf.chat.Chat.PbChatData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.chat.Chat.PbChatData buildPartial() {
        pb.xiugou.x1.protobuf.chat.Chat.PbChatData result = new pb.xiugou.x1.protobuf.chat.Chat.PbChatData(this);
        result.id_ = id_;
        result.speakerId_ = speakerId_;
        result.speakerNick_ = speakerNick_;
        result.head_ = head_;
        result.sex_ = sex_;
        result.content_ = content_;
        result.vipLevel_ = vipLevel_;
        result.level_ = level_;
        result.time_ = time_;
        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 pb.xiugou.x1.protobuf.chat.Chat.PbChatData) {
          return mergeFrom((pb.xiugou.x1.protobuf.chat.Chat.PbChatData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.chat.Chat.PbChatData other) {
        if (other == pb.xiugou.x1.protobuf.chat.Chat.PbChatData.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.getSpeakerId() != 0L) {
          setSpeakerId(other.getSpeakerId());
        }
        if (!other.getSpeakerNick().isEmpty()) {
          speakerNick_ = other.speakerNick_;
          onChanged();
        }
        if (!other.getHead().isEmpty()) {
          head_ = other.head_;
          onChanged();
        }
        if (other.getSex() != 0) {
          setSex(other.getSex());
        }
        if (!other.getContent().isEmpty()) {
          content_ = other.content_;
          onChanged();
        }
        if (other.getVipLevel() != 0) {
          setVipLevel(other.getVipLevel());
        }
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        if (other.getTime() != 0L) {
          setTime(other.getTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        pb.xiugou.x1.protobuf.chat.Chat.PbChatData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.chat.Chat.PbChatData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long id_ ;
      /**
       * <pre>
       *聊天ID
       * </pre>
       *
       * <code>int64 id = 1;</code>
       * @return The id.
       */
      public long getId() {
        return id_;
      }
      /**
       * <pre>
       *聊天ID
       * </pre>
       *
       * <code>int64 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *聊天ID
       * </pre>
       *
       * <code>int64 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }

      private long speakerId_ ;
      /**
       * <pre>
       *说话者ID
       * </pre>
       *
       * <code>int64 speaker_id = 2;</code>
       * @return The speakerId.
       */
      public long getSpeakerId() {
        return speakerId_;
      }
      /**
       * <pre>
       *说话者ID
       * </pre>
       *
       * <code>int64 speaker_id = 2;</code>
       * @param value The speakerId to set.
       * @return This builder for chaining.
       */
      public Builder setSpeakerId(long value) {
        
        speakerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话者ID
       * </pre>
       *
       * <code>int64 speaker_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpeakerId() {
        
        speakerId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object speakerNick_ = "";
      /**
       * <pre>
       *说话者昵称
       * </pre>
       *
       * <code>string speaker_nick = 3;</code>
       * @return The speakerNick.
       */
      public java.lang.String getSpeakerNick() {
        java.lang.Object ref = speakerNick_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          speakerNick_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *说话者昵称
       * </pre>
       *
       * <code>string speaker_nick = 3;</code>
       * @return The bytes for speakerNick.
       */
      public com.google.protobuf.ByteString
          getSpeakerNickBytes() {
        java.lang.Object ref = speakerNick_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          speakerNick_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *说话者昵称
       * </pre>
       *
       * <code>string speaker_nick = 3;</code>
       * @param value The speakerNick to set.
       * @return This builder for chaining.
       */
      public Builder setSpeakerNick(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        speakerNick_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话者昵称
       * </pre>
       *
       * <code>string speaker_nick = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpeakerNick() {
        
        speakerNick_ = getDefaultInstance().getSpeakerNick();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话者昵称
       * </pre>
       *
       * <code>string speaker_nick = 3;</code>
       * @param value The bytes for speakerNick to set.
       * @return This builder for chaining.
       */
      public Builder setSpeakerNickBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        speakerNick_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object head_ = "";
      /**
       * <pre>
       *说话者头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return The head.
       */
      public java.lang.String getHead() {
        java.lang.Object ref = head_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          head_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *说话者头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return The bytes for head.
       */
      public com.google.protobuf.ByteString
          getHeadBytes() {
        java.lang.Object ref = head_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          head_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *说话者头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @param value The head to set.
       * @return This builder for chaining.
       */
      public Builder setHead(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        head_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话者头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHead() {
        
        head_ = getDefaultInstance().getHead();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话者头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @param value The bytes for head to set.
       * @return This builder for chaining.
       */
      public Builder setHeadBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        head_ = value;
        onChanged();
        return this;
      }

      private int sex_ ;
      /**
       * <pre>
       *性别
       * </pre>
       *
       * <code>int32 sex = 5;</code>
       * @return The sex.
       */
      public int getSex() {
        return sex_;
      }
      /**
       * <pre>
       *性别
       * </pre>
       *
       * <code>int32 sex = 5;</code>
       * @param value The sex to set.
       * @return This builder for chaining.
       */
      public Builder setSex(int value) {
        
        sex_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *性别
       * </pre>
       *
       * <code>int32 sex = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSex() {
        
        sex_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object content_ = "";
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 6;</code>
       * @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;
        }
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 6;</code>
       * @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;
        }
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 6;</code>
       * @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;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearContent() {
        
        content_ = getDefaultInstance().getContent();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话内容
       * </pre>
       *
       * <code>string content = 6;</code>
       * @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;
        onChanged();
        return this;
      }

      private int vipLevel_ ;
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 7;</code>
       * @return The vipLevel.
       */
      public int getVipLevel() {
        return vipLevel_;
      }
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 7;</code>
       * @param value The vipLevel to set.
       * @return This builder for chaining.
       */
      public Builder setVipLevel(int value) {
        
        vipLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearVipLevel() {
        
        vipLevel_ = 0;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * <pre>
       *角色等级
       * </pre>
       *
       * <code>int32 level = 8;</code>
       * @return The level.
       */
      public int getLevel() {
        return level_;
      }
      /**
       * <pre>
       *角色等级
       * </pre>
       *
       * <code>int32 level = 8;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *角色等级
       * </pre>
       *
       * <code>int32 level = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        
        level_ = 0;
        onChanged();
        return this;
      }

      private long time_ ;
      /**
       * <pre>
       *说话时间
       * </pre>
       *
       * <code>int64 time = 9;</code>
       * @return The time.
       */
      public long getTime() {
        return time_;
      }
      /**
       * <pre>
       *说话时间
       * </pre>
       *
       * <code>int64 time = 9;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(long value) {
        
        time_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *说话时间
       * </pre>
       *
       * <code>int64 time = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        
        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:pb.PbChatData)
    }

    // @@protoc_insertion_point(class_scope:pb.PbChatData)
    private static final pb.xiugou.x1.protobuf.chat.Chat.PbChatData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.chat.Chat.PbChatData();
    }

    public static pb.xiugou.x1.protobuf.chat.Chat.PbChatData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbChatData>
        PARSER = new com.google.protobuf.AbstractParser<PbChatData>() {
      @java.lang.Override
      public PbChatData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbChatData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbChatData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbChatData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.chat.Chat.PbChatData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChatChannelInfoRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChatChannelInfoRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChatChannelInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChatChannelInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChatToRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChatToRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChatToResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChatToResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChatToMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChatToMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbChatData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbChatData_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\nChat.proto\022\002pb\"]\n\026ChatChannelInfoReque" +
      "st\022\017\n\007channel\030\001 \001(\005\022\021\n\ttarget_id\030\002 \001(\003\"\037" +
      "\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\201\335\333\001\"\223\001\n\027Chat" +
      "ChannelInfoResponse\022\017\n\007channel\030\001 \001(\005\022\021\n\t" +
      "target_id\030\002 \001(\003\022\"\n\nchat_datas\030\003 \003(\0132\016.pb" +
      ".PbChatData\022\017\n\007chat_cd\030\004 \001(\003\"\037\n\005Proto\022\013\n" +
      "\007UNKNOWN\020\000\022\t\n\002ID\020\201\335\333\001\"e\n\rChatToRequest\022\017" +
      "\n\007channel\030\001 \001(\005\022\021\n\ttarget_id\030\002 \001(\003\022\017\n\007co" +
      "ntent\030\003 \001(\t\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020" +
      "\202\335\333\001\"S\n\016ChatToResponse\022\017\n\007channel\030\001 \001(\005\022" +
      "\017\n\007chat_cd\030\002 \001(\003\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t" +
      "\n\002ID\020\202\335\333\001\"w\n\rChatToMessage\022\017\n\007channel\030\001 " +
      "\001(\005\022\021\n\ttarget_id\030\002 \001(\003\022!\n\tchat_data\030\003 \001(" +
      "\0132\016.pb.PbChatData\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022" +
      "\t\n\002ID\020\203\335\333\001\"\236\001\n\nPbChatData\022\n\n\002id\030\001 \001(\003\022\022\n" +
      "\nspeaker_id\030\002 \001(\003\022\024\n\014speaker_nick\030\003 \001(\t\022" +
      "\014\n\004head\030\004 \001(\t\022\013\n\003sex\030\005 \001(\005\022\017\n\007content\030\006 " +
      "\001(\t\022\021\n\tvip_level\030\007 \001(\005\022\r\n\005level\030\010 \001(\005\022\014\n" +
      "\004time\030\t \001(\003*J\n\rPbChatChannel\022\013\n\007NO_CHAT\020" +
      "\000\022\016\n\nWORLD_CHAT\020\001\022\016\n\nCROSS_CHAT\020\002\022\014\n\010SYS" +
      "_CHAT\020\003B4\n\032pb.xiugou.x1.protobuf.chat\252\002\025" +
      "pb.xiugou.x1.protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_pb_ChatChannelInfoRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_ChatChannelInfoRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChatChannelInfoRequest_descriptor,
        new java.lang.String[] { "Channel", "TargetId", });
    internal_static_pb_ChatChannelInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_ChatChannelInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChatChannelInfoResponse_descriptor,
        new java.lang.String[] { "Channel", "TargetId", "ChatDatas", "ChatCd", });
    internal_static_pb_ChatToRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_ChatToRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChatToRequest_descriptor,
        new java.lang.String[] { "Channel", "TargetId", "Content", });
    internal_static_pb_ChatToResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_ChatToResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChatToResponse_descriptor,
        new java.lang.String[] { "Channel", "ChatCd", });
    internal_static_pb_ChatToMessage_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_ChatToMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChatToMessage_descriptor,
        new java.lang.String[] { "Channel", "TargetId", "ChatData", });
    internal_static_pb_PbChatData_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_PbChatData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbChatData_descriptor,
        new java.lang.String[] { "Id", "SpeakerId", "SpeakerNick", "Head", "Sex", "Content", "VipLevel", "Level", "Time", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
