content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: ChapterStateNotify.proto
  
  package emu.grasscutter.net.proto;
  
  public final class ChapterStateNotifyOuterClass {
    private ChapterStateNotifyOuterClass() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    public interface ChapterStateNotifyOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ChapterStateNotify)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       * @return Whether the needPlayerLevel field is set.
       */
      boolean hasNeedPlayerLevel();
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       * @return The needPlayerLevel.
       */
      emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getNeedPlayerLevel();
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       */
      emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder getNeedPlayerLevelOrBuilder();
  
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       * @return Whether the needBeginTime field is set.
       */
      boolean hasNeedBeginTime();
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       * @return The needBeginTime.
       */
      emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getNeedBeginTime();
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       */
      emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder getNeedBeginTimeOrBuilder();
  
      /**
       * <code>.ChapterState chapterState = 13;</code>
       * @return The enum numeric value on the wire for chapterState.
       */
      int getChapterStateValue();
      /**
       * <code>.ChapterState chapterState = 13;</code>
       * @return The chapterState.
       */
      emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState getChapterState();
  
      /**
       * <code>uint32 chapterId = 15;</code>
       * @return The chapterId.
       */
      int getChapterId();
    }
    /**
     * Protobuf type {@code ChapterStateNotify}
     */
    public static final class ChapterStateNotify extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:ChapterStateNotify)
        ChapterStateNotifyOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ChapterStateNotify.newBuilder() to construct.
      private ChapterStateNotify(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ChapterStateNotify() {
        chapterState_ = 0;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new ChapterStateNotify();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ChapterStateNotify(
          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 18: {
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder subBuilder = null;
                if (needPlayerLevel_ != null) {
                  subBuilder = needPlayerLevel_.toBuilder();
                }
                needPlayerLevel_ = input.readMessage(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(needPlayerLevel_);
                  needPlayerLevel_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 74: {
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder subBuilder = null;
                if (needBeginTime_ != null) {
                  subBuilder = needBeginTime_.toBuilder();
                }
                needBeginTime_ = input.readMessage(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(needBeginTime_);
                  needBeginTime_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 104: {
                int rawValue = input.readEnum();
  
                chapterState_ = rawValue;
                break;
              }
              case 120: {
  
                chapterId_ = input.readUInt32();
                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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.Builder.class);
      }
  
      /**
       * Protobuf enum {@code ChapterStateNotify.FCANPLPPJEL}
       */
      public enum FCANPLPPJEL
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>NONE = 0;</code>
         */
        NONE(0, 0),
        /**
         * <code>PEPPOHPHJOJ = 469;</code>
         */
        PEPPOHPHJOJ(1, 469),
        /**
         * <code>NNBKOLMPOEA = 1;</code>
         */
        NNBKOLMPOEA(3, 1),
        UNRECOGNIZED(-1, -1),
        ;
  
        /**
         * <code>DCDNILFDFLB = 0;</code>
         */
        public static final FCANPLPPJEL DCDNILFDFLB = NONE;
        /**
         * <code>NONE = 0;</code>
         */
        public static final int NONE_VALUE = 0;
        /**
         * <code>PEPPOHPHJOJ = 469;</code>
         */
        public static final int PEPPOHPHJOJ_VALUE = 469;
        /**
         * <code>DCDNILFDFLB = 0;</code>
         */
        public static final int DCDNILFDFLB_VALUE = 0;
        /**
         * <code>NNBKOLMPOEA = 1;</code>
         */
        public static final int NNBKOLMPOEA_VALUE = 1;
  
  
        public final int getNumber() {
          if (index == -1) {
            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 FCANPLPPJEL 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 FCANPLPPJEL forNumber(int value) {
          switch (value) {
            case 0: return NONE;
            case 469: return PEPPOHPHJOJ;
            case 1: return NNBKOLMPOEA;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<FCANPLPPJEL>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            FCANPLPPJEL> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<FCANPLPPJEL>() {
                public FCANPLPPJEL findValueByNumber(int number) {
                  return FCANPLPPJEL.forNumber(number);
                }
              };
  
        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          if (index == -1) {
            throw new java.lang.IllegalStateException(
                "Can't get the descriptor of an unrecognized enum value.");
          }
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.getDescriptor().getEnumTypes().get(0);
        }
  
        private static final FCANPLPPJEL[] VALUES = getStaticValuesArray();
        private static FCANPLPPJEL[] getStaticValuesArray() {
          return new FCANPLPPJEL[] {
            NONE, PEPPOHPHJOJ, DCDNILFDFLB, NNBKOLMPOEA, 
          };
        }
        public static FCANPLPPJEL 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 index;
        private final int value;
  
        private FCANPLPPJEL(int index, int value) {
          this.index = index;
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:ChapterStateNotify.FCANPLPPJEL)
      }
  
      public interface NeedPlayerLevelOrBuilder extends
          // @@protoc_insertion_point(interface_extends:ChapterStateNotify.NeedPlayerLevel)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <code>uint32 configNeedPlayerLevel = 4;</code>
         * @return The configNeedPlayerLevel.
         */
        int getConfigNeedPlayerLevel();
  
        /**
         * <code>bool isLimit = 14;</code>
         * @return The isLimit.
         */
        boolean getIsLimit();
      }
      /**
       * Protobuf type {@code ChapterStateNotify.NeedPlayerLevel}
       */
      public static final class NeedPlayerLevel extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:ChapterStateNotify.NeedPlayerLevel)
          NeedPlayerLevelOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use NeedPlayerLevel.newBuilder() to construct.
        private NeedPlayerLevel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private NeedPlayerLevel() {
        }
  
        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new NeedPlayerLevel();
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private NeedPlayerLevel(
            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 32: {
  
                  configNeedPlayerLevel_ = input.readUInt32();
                  break;
                }
                case 112: {
  
                  isLimit_ = input.readBool();
                  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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedPlayerLevel_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder.class);
        }
  
        public static final int CONFIGNEEDPLAYERLEVEL_FIELD_NUMBER = 4;
        private int configNeedPlayerLevel_;
        /**
         * <code>uint32 configNeedPlayerLevel = 4;</code>
         * @return The configNeedPlayerLevel.
         */
        @java.lang.Override
        public int getConfigNeedPlayerLevel() {
          return configNeedPlayerLevel_;
        }
  
        public static final int ISLIMIT_FIELD_NUMBER = 14;
        private boolean isLimit_;
        /**
         * <code>bool isLimit = 14;</code>
         * @return The isLimit.
         */
        @java.lang.Override
        public boolean getIsLimit() {
          return isLimit_;
        }
  
        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 (configNeedPlayerLevel_ != 0) {
            output.writeUInt32(4, configNeedPlayerLevel_);
          }
          if (isLimit_ != false) {
            output.writeBool(14, isLimit_);
          }
          unknownFields.writeTo(output);
        }
  
        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          if (configNeedPlayerLevel_ != 0) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(4, configNeedPlayerLevel_);
          }
          if (isLimit_ != false) {
            size += com.google.protobuf.CodedOutputStream
              .computeBoolSize(14, isLimit_);
          }
          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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel)) {
            return super.equals(obj);
          }
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel other = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel) obj;
  
          if (getConfigNeedPlayerLevel()
              != other.getConfigNeedPlayerLevel()) return false;
          if (getIsLimit()
              != other.getIsLimit()) 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) + CONFIGNEEDPLAYERLEVEL_FIELD_NUMBER;
          hash = (53 * hash) + getConfigNeedPlayerLevel();
          hash = (37 * hash) + ISLIMIT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsLimit());
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel 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(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel 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 ChapterStateNotify.NeedPlayerLevel}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:ChapterStateNotify.NeedPlayerLevel)
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor;
          }
  
          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedPlayerLevel_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder.class);
          }
  
          // Construct using emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.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();
            configNeedPlayerLevel_ = 0;
  
            isLimit_ = false;
  
            return this;
          }
  
          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getDefaultInstanceForType() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.getDefaultInstance();
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel build() {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel buildPartial() {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel result = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel(this);
            result.configNeedPlayerLevel_ = configNeedPlayerLevel_;
            result.isLimit_ = isLimit_;
            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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel) {
              return mergeFrom((emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel other) {
            if (other == emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.getDefaultInstance()) return this;
            if (other.getConfigNeedPlayerLevel() != 0) {
              setConfigNeedPlayerLevel(other.getConfigNeedPlayerLevel());
            }
            if (other.getIsLimit() != false) {
              setIsLimit(other.getIsLimit());
            }
            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 {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
  
          private int configNeedPlayerLevel_ ;
          /**
           * <code>uint32 configNeedPlayerLevel = 4;</code>
           * @return The configNeedPlayerLevel.
           */
          @java.lang.Override
          public int getConfigNeedPlayerLevel() {
            return configNeedPlayerLevel_;
          }
          /**
           * <code>uint32 configNeedPlayerLevel = 4;</code>
           * @param value The configNeedPlayerLevel to set.
           * @return This builder for chaining.
           */
          public Builder setConfigNeedPlayerLevel(int value) {
            
            configNeedPlayerLevel_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>uint32 configNeedPlayerLevel = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearConfigNeedPlayerLevel() {
            
            configNeedPlayerLevel_ = 0;
            onChanged();
            return this;
          }
  
          private boolean isLimit_ ;
          /**
           * <code>bool isLimit = 14;</code>
           * @return The isLimit.
           */
          @java.lang.Override
          public boolean getIsLimit() {
            return isLimit_;
          }
          /**
           * <code>bool isLimit = 14;</code>
           * @param value The isLimit to set.
           * @return This builder for chaining.
           */
          public Builder setIsLimit(boolean value) {
            
            isLimit_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>bool isLimit = 14;</code>
           * @return This builder for chaining.
           */
          public Builder clearIsLimit() {
            
            isLimit_ = false;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }
  
          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:ChapterStateNotify.NeedPlayerLevel)
        }
  
        // @@protoc_insertion_point(class_scope:ChapterStateNotify.NeedPlayerLevel)
        private static final emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel();
        }
  
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<NeedPlayerLevel>
            PARSER = new com.google.protobuf.AbstractParser<NeedPlayerLevel>() {
          @java.lang.Override
          public NeedPlayerLevel parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NeedPlayerLevel(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<NeedPlayerLevel> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<NeedPlayerLevel> getParserForType() {
          return PARSER;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      public interface NeedBeginTimeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:ChapterStateNotify.NeedBeginTime)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <code>uint32 configNeedBeginTime = 5;</code>
         * @return The configNeedBeginTime.
         */
        int getConfigNeedBeginTime();
  
        /**
         * <code>bool isLimit = 4;</code>
         * @return The isLimit.
         */
        boolean getIsLimit();
      }
      /**
       * Protobuf type {@code ChapterStateNotify.NeedBeginTime}
       */
      public static final class NeedBeginTime extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:ChapterStateNotify.NeedBeginTime)
          NeedBeginTimeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use NeedBeginTime.newBuilder() to construct.
        private NeedBeginTime(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private NeedBeginTime() {
        }
  
        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new NeedBeginTime();
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private NeedBeginTime(
            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 32: {
  
                  isLimit_ = input.readBool();
                  break;
                }
                case 40: {
  
                  configNeedBeginTime_ = input.readUInt32();
                  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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedBeginTime_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedBeginTime_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder.class);
        }
  
        public static final int CONFIGNEEDBEGINTIME_FIELD_NUMBER = 5;
        private int configNeedBeginTime_;
        /**
         * <code>uint32 configNeedBeginTime = 5;</code>
         * @return The configNeedBeginTime.
         */
        @java.lang.Override
        public int getConfigNeedBeginTime() {
          return configNeedBeginTime_;
        }
  
        public static final int ISLIMIT_FIELD_NUMBER = 4;
        private boolean isLimit_;
        /**
         * <code>bool isLimit = 4;</code>
         * @return The isLimit.
         */
        @java.lang.Override
        public boolean getIsLimit() {
          return isLimit_;
        }
  
        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 (isLimit_ != false) {
            output.writeBool(4, isLimit_);
          }
          if (configNeedBeginTime_ != 0) {
            output.writeUInt32(5, configNeedBeginTime_);
          }
          unknownFields.writeTo(output);
        }
  
        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          if (isLimit_ != false) {
            size += com.google.protobuf.CodedOutputStream
              .computeBoolSize(4, isLimit_);
          }
          if (configNeedBeginTime_ != 0) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(5, configNeedBeginTime_);
          }
          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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime)) {
            return super.equals(obj);
          }
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime other = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime) obj;
  
          if (getConfigNeedBeginTime()
              != other.getConfigNeedBeginTime()) return false;
          if (getIsLimit()
              != other.getIsLimit()) 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) + CONFIGNEEDBEGINTIME_FIELD_NUMBER;
          hash = (53 * hash) + getConfigNeedBeginTime();
          hash = (37 * hash) + ISLIMIT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsLimit());
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime 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(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime 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 ChapterStateNotify.NeedBeginTime}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:ChapterStateNotify.NeedBeginTime)
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedBeginTime_descriptor;
          }
  
          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedBeginTime_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder.class);
          }
  
          // Construct using emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.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();
            configNeedBeginTime_ = 0;
  
            isLimit_ = false;
  
            return this;
          }
  
          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_NeedBeginTime_descriptor;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getDefaultInstanceForType() {
            return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance();
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime build() {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime buildPartial() {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime result = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime(this);
            result.configNeedBeginTime_ = configNeedBeginTime_;
            result.isLimit_ = isLimit_;
            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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime) {
              return mergeFrom((emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime other) {
            if (other == emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance()) return this;
            if (other.getConfigNeedBeginTime() != 0) {
              setConfigNeedBeginTime(other.getConfigNeedBeginTime());
            }
            if (other.getIsLimit() != false) {
              setIsLimit(other.getIsLimit());
            }
            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 {
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
  
          private int configNeedBeginTime_ ;
          /**
           * <code>uint32 configNeedBeginTime = 5;</code>
           * @return The configNeedBeginTime.
           */
          @java.lang.Override
          public int getConfigNeedBeginTime() {
            return configNeedBeginTime_;
          }
          /**
           * <code>uint32 configNeedBeginTime = 5;</code>
           * @param value The configNeedBeginTime to set.
           * @return This builder for chaining.
           */
          public Builder setConfigNeedBeginTime(int value) {
            
            configNeedBeginTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>uint32 configNeedBeginTime = 5;</code>
           * @return This builder for chaining.
           */
          public Builder clearConfigNeedBeginTime() {
            
            configNeedBeginTime_ = 0;
            onChanged();
            return this;
          }
  
          private boolean isLimit_ ;
          /**
           * <code>bool isLimit = 4;</code>
           * @return The isLimit.
           */
          @java.lang.Override
          public boolean getIsLimit() {
            return isLimit_;
          }
          /**
           * <code>bool isLimit = 4;</code>
           * @param value The isLimit to set.
           * @return This builder for chaining.
           */
          public Builder setIsLimit(boolean value) {
            
            isLimit_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>bool isLimit = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearIsLimit() {
            
            isLimit_ = false;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }
  
          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:ChapterStateNotify.NeedBeginTime)
        }
  
        // @@protoc_insertion_point(class_scope:ChapterStateNotify.NeedBeginTime)
        private static final emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime();
        }
  
        public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<NeedBeginTime>
            PARSER = new com.google.protobuf.AbstractParser<NeedBeginTime>() {
          @java.lang.Override
          public NeedBeginTime parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NeedBeginTime(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<NeedBeginTime> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<NeedBeginTime> getParserForType() {
          return PARSER;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      public static final int NEEDPLAYERLEVEL_FIELD_NUMBER = 2;
      private emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel needPlayerLevel_;
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       * @return Whether the needPlayerLevel field is set.
       */
      @java.lang.Override
      public boolean hasNeedPlayerLevel() {
        return needPlayerLevel_ != null;
      }
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       * @return The needPlayerLevel.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getNeedPlayerLevel() {
        return needPlayerLevel_ == null ? emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.getDefaultInstance() : needPlayerLevel_;
      }
      /**
       * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder getNeedPlayerLevelOrBuilder() {
        return getNeedPlayerLevel();
      }
  
      public static final int NEEDBEGINTIME_FIELD_NUMBER = 9;
      private emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime needBeginTime_;
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       * @return Whether the needBeginTime field is set.
       */
      @java.lang.Override
      public boolean hasNeedBeginTime() {
        return needBeginTime_ != null;
      }
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       * @return The needBeginTime.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getNeedBeginTime() {
        return needBeginTime_ == null ? emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance() : needBeginTime_;
      }
      /**
       * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder getNeedBeginTimeOrBuilder() {
        return getNeedBeginTime();
      }
  
      public static final int CHAPTERSTATE_FIELD_NUMBER = 13;
      private int chapterState_;
      /**
       * <code>.ChapterState chapterState = 13;</code>
       * @return The enum numeric value on the wire for chapterState.
       */
      @java.lang.Override public int getChapterStateValue() {
        return chapterState_;
      }
      /**
       * <code>.ChapterState chapterState = 13;</code>
       * @return The chapterState.
       */
      @java.lang.Override public emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState getChapterState() {
        @SuppressWarnings("deprecation")
        emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState result = emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.valueOf(chapterState_);
        return result == null ? emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.UNRECOGNIZED : result;
      }
  
      public static final int CHAPTERID_FIELD_NUMBER = 15;
      private int chapterId_;
      /**
       * <code>uint32 chapterId = 15;</code>
       * @return The chapterId.
       */
      @java.lang.Override
      public int getChapterId() {
        return chapterId_;
      }
  
      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 (needPlayerLevel_ != null) {
          output.writeMessage(2, getNeedPlayerLevel());
        }
        if (needBeginTime_ != null) {
          output.writeMessage(9, getNeedBeginTime());
        }
        if (chapterState_ != emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.CHAPTER_STATE_NONE.getNumber()) {
          output.writeEnum(13, chapterState_);
        }
        if (chapterId_ != 0) {
          output.writeUInt32(15, chapterId_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (needPlayerLevel_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getNeedPlayerLevel());
        }
        if (needBeginTime_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, getNeedBeginTime());
        }
        if (chapterState_ != emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.CHAPTER_STATE_NONE.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(13, chapterState_);
        }
        if (chapterId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(15, chapterId_);
        }
        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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify)) {
          return super.equals(obj);
        }
        emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify other = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify) obj;
  
        if (hasNeedPlayerLevel() != other.hasNeedPlayerLevel()) return false;
        if (hasNeedPlayerLevel()) {
          if (!getNeedPlayerLevel()
              .equals(other.getNeedPlayerLevel())) return false;
        }
        if (hasNeedBeginTime() != other.hasNeedBeginTime()) return false;
        if (hasNeedBeginTime()) {
          if (!getNeedBeginTime()
              .equals(other.getNeedBeginTime())) return false;
        }
        if (chapterState_ != other.chapterState_) return false;
        if (getChapterId()
            != other.getChapterId()) 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();
        if (hasNeedPlayerLevel()) {
          hash = (37 * hash) + NEEDPLAYERLEVEL_FIELD_NUMBER;
          hash = (53 * hash) + getNeedPlayerLevel().hashCode();
        }
        if (hasNeedBeginTime()) {
          hash = (37 * hash) + NEEDBEGINTIME_FIELD_NUMBER;
          hash = (53 * hash) + getNeedBeginTime().hashCode();
        }
        hash = (37 * hash) + CHAPTERSTATE_FIELD_NUMBER;
        hash = (53 * hash) + chapterState_;
        hash = (37 * hash) + CHAPTERID_FIELD_NUMBER;
        hash = (53 * hash) + getChapterId();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify 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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify 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(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify 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 ChapterStateNotify}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:ChapterStateNotify)
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotifyOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.Builder.class);
        }
  
        // Construct using emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.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();
          if (needPlayerLevelBuilder_ == null) {
            needPlayerLevel_ = null;
          } else {
            needPlayerLevel_ = null;
            needPlayerLevelBuilder_ = null;
          }
          if (needBeginTimeBuilder_ == null) {
            needBeginTime_ = null;
          } else {
            needBeginTime_ = null;
            needBeginTimeBuilder_ = null;
          }
          chapterState_ = 0;
  
          chapterId_ = 0;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.internal_static_ChapterStateNotify_descriptor;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify getDefaultInstanceForType() {
          return emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.getDefaultInstance();
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify build() {
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify buildPartial() {
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify result = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify(this);
          if (needPlayerLevelBuilder_ == null) {
            result.needPlayerLevel_ = needPlayerLevel_;
          } else {
            result.needPlayerLevel_ = needPlayerLevelBuilder_.build();
          }
          if (needBeginTimeBuilder_ == null) {
            result.needBeginTime_ = needBeginTime_;
          } else {
            result.needBeginTime_ = needBeginTimeBuilder_.build();
          }
          result.chapterState_ = chapterState_;
          result.chapterId_ = chapterId_;
          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 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify) {
            return mergeFrom((emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify other) {
          if (other == emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.getDefaultInstance()) return this;
          if (other.hasNeedPlayerLevel()) {
            mergeNeedPlayerLevel(other.getNeedPlayerLevel());
          }
          if (other.hasNeedBeginTime()) {
            mergeNeedBeginTime(other.getNeedBeginTime());
          }
          if (other.chapterState_ != 0) {
            setChapterStateValue(other.getChapterStateValue());
          }
          if (other.getChapterId() != 0) {
            setChapterId(other.getChapterId());
          }
          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 {
          emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel needPlayerLevel_;
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder> needPlayerLevelBuilder_;
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         * @return Whether the needPlayerLevel field is set.
         */
        public boolean hasNeedPlayerLevel() {
          return needPlayerLevelBuilder_ != null || needPlayerLevel_ != null;
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         * @return The needPlayerLevel.
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel getNeedPlayerLevel() {
          if (needPlayerLevelBuilder_ == null) {
            return needPlayerLevel_ == null ? emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.getDefaultInstance() : needPlayerLevel_;
          } else {
            return needPlayerLevelBuilder_.getMessage();
          }
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public Builder setNeedPlayerLevel(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel value) {
          if (needPlayerLevelBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            needPlayerLevel_ = value;
            onChanged();
          } else {
            needPlayerLevelBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public Builder setNeedPlayerLevel(
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder builderForValue) {
          if (needPlayerLevelBuilder_ == null) {
            needPlayerLevel_ = builderForValue.build();
            onChanged();
          } else {
            needPlayerLevelBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public Builder mergeNeedPlayerLevel(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel value) {
          if (needPlayerLevelBuilder_ == null) {
            if (needPlayerLevel_ != null) {
              needPlayerLevel_ =
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.newBuilder(needPlayerLevel_).mergeFrom(value).buildPartial();
            } else {
              needPlayerLevel_ = value;
            }
            onChanged();
          } else {
            needPlayerLevelBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public Builder clearNeedPlayerLevel() {
          if (needPlayerLevelBuilder_ == null) {
            needPlayerLevel_ = null;
            onChanged();
          } else {
            needPlayerLevel_ = null;
            needPlayerLevelBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder getNeedPlayerLevelBuilder() {
          
          onChanged();
          return getNeedPlayerLevelFieldBuilder().getBuilder();
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder getNeedPlayerLevelOrBuilder() {
          if (needPlayerLevelBuilder_ != null) {
            return needPlayerLevelBuilder_.getMessageOrBuilder();
          } else {
            return needPlayerLevel_ == null ?
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.getDefaultInstance() : needPlayerLevel_;
          }
        }
        /**
         * <code>.ChapterStateNotify.NeedPlayerLevel needPlayerLevel = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder> 
            getNeedPlayerLevelFieldBuilder() {
          if (needPlayerLevelBuilder_ == null) {
            needPlayerLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevel.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedPlayerLevelOrBuilder>(
                    getNeedPlayerLevel(),
                    getParentForChildren(),
                    isClean());
            needPlayerLevel_ = null;
          }
          return needPlayerLevelBuilder_;
        }
  
        private emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime needBeginTime_;
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder> needBeginTimeBuilder_;
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         * @return Whether the needBeginTime field is set.
         */
        public boolean hasNeedBeginTime() {
          return needBeginTimeBuilder_ != null || needBeginTime_ != null;
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         * @return The needBeginTime.
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime getNeedBeginTime() {
          if (needBeginTimeBuilder_ == null) {
            return needBeginTime_ == null ? emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance() : needBeginTime_;
          } else {
            return needBeginTimeBuilder_.getMessage();
          }
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public Builder setNeedBeginTime(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime value) {
          if (needBeginTimeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            needBeginTime_ = value;
            onChanged();
          } else {
            needBeginTimeBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public Builder setNeedBeginTime(
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder builderForValue) {
          if (needBeginTimeBuilder_ == null) {
            needBeginTime_ = builderForValue.build();
            onChanged();
          } else {
            needBeginTimeBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public Builder mergeNeedBeginTime(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime value) {
          if (needBeginTimeBuilder_ == null) {
            if (needBeginTime_ != null) {
              needBeginTime_ =
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.newBuilder(needBeginTime_).mergeFrom(value).buildPartial();
            } else {
              needBeginTime_ = value;
            }
            onChanged();
          } else {
            needBeginTimeBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public Builder clearNeedBeginTime() {
          if (needBeginTimeBuilder_ == null) {
            needBeginTime_ = null;
            onChanged();
          } else {
            needBeginTime_ = null;
            needBeginTimeBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder getNeedBeginTimeBuilder() {
          
          onChanged();
          return getNeedBeginTimeFieldBuilder().getBuilder();
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder getNeedBeginTimeOrBuilder() {
          if (needBeginTimeBuilder_ != null) {
            return needBeginTimeBuilder_.getMessageOrBuilder();
          } else {
            return needBeginTime_ == null ?
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance() : needBeginTime_;
          }
        }
        /**
         * <code>.ChapterStateNotify.NeedBeginTime needBeginTime = 9;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder> 
            getNeedBeginTimeFieldBuilder() {
          if (needBeginTimeBuilder_ == null) {
            needBeginTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder>(
                    getNeedBeginTime(),
                    getParentForChildren(),
                    isClean());
            needBeginTime_ = null;
          }
          return needBeginTimeBuilder_;
        }
  
        private int chapterState_ = 0;
        /**
         * <code>.ChapterState chapterState = 13;</code>
         * @return The enum numeric value on the wire for chapterState.
         */
        @java.lang.Override public int getChapterStateValue() {
          return chapterState_;
        }
        /**
         * <code>.ChapterState chapterState = 13;</code>
         * @param value The enum numeric value on the wire for chapterState to set.
         * @return This builder for chaining.
         */
        public Builder setChapterStateValue(int value) {
          
          chapterState_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.ChapterState chapterState = 13;</code>
         * @return The chapterState.
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState getChapterState() {
          @SuppressWarnings("deprecation")
          emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState result = emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.valueOf(chapterState_);
          return result == null ? emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState.UNRECOGNIZED : result;
        }
        /**
         * <code>.ChapterState chapterState = 13;</code>
         * @param value The chapterState to set.
         * @return This builder for chaining.
         */
        public Builder setChapterState(emu.grasscutter.net.proto.ChapterStateOuterClass.ChapterState value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          chapterState_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.ChapterState chapterState = 13;</code>
         * @return This builder for chaining.
         */
        public Builder clearChapterState() {
          
          chapterState_ = 0;
          onChanged();
          return this;
        }
  
        private int chapterId_ ;
        /**
         * <code>uint32 chapterId = 15;</code>
         * @return The chapterId.
         */
        @java.lang.Override
        public int getChapterId() {
          return chapterId_;
        }
        /**
         * <code>uint32 chapterId = 15;</code>
         * @param value The chapterId to set.
         * @return This builder for chaining.
         */
        public Builder setChapterId(int value) {
          
          chapterId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 chapterId = 15;</code>
         * @return This builder for chaining.
         */
        public Builder clearChapterId() {
          
          chapterId_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:ChapterStateNotify)
      }
  
      // @@protoc_insertion_point(class_scope:ChapterStateNotify)
      private static final emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify();
      }
  
      public static emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<ChapterStateNotify>
          PARSER = new com.google.protobuf.AbstractParser<ChapterStateNotify>() {
        @java.lang.Override
        public ChapterStateNotify parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ChapterStateNotify(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<ChapterStateNotify> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<ChapterStateNotify> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_ChapterStateNotify_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_ChapterStateNotify_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_ChapterStateNotify_NeedPlayerLevel_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_ChapterStateNotify_NeedBeginTime_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_ChapterStateNotify_NeedBeginTime_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\030ChapterStateNotify.proto\032\022ChapterState" +
        ".proto\"\227\003\n\022ChapterStateNotify\022<\n\017needPla" +
        "yerLevel\030\002 \001(\0132#.ChapterStateNotify.Need" +
        "PlayerLevel\0228\n\rneedBeginTime\030\t \001(\0132!.Cha" +
        "pterStateNotify.NeedBeginTime\022#\n\014chapter" +
        "State\030\r \001(\0162\r.ChapterState\022\021\n\tchapterId\030" +
        "\017 \001(\r\032A\n\017NeedPlayerLevel\022\035\n\025configNeedPl" +
        "ayerLevel\030\004 \001(\r\022\017\n\007isLimit\030\016 \001(\010\032=\n\rNeed" +
        "BeginTime\022\033\n\023configNeedBeginTime\030\005 \001(\r\022\017" +
        "\n\007isLimit\030\004 \001(\010\"O\n\013FCANPLPPJEL\022\010\n\004NONE\020\000" +
        "\022\020\n\013PEPPOHPHJOJ\020\325\003\022\017\n\013DCDNILFDFLB\020\000\022\017\n\013N" +
        "NBKOLMPOEA\020\001\032\002\020\001B\033\n\031emu.grasscutter.net." +
        "protob\006proto3"
      };
      descriptor = com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            emu.grasscutter.net.proto.ChapterStateOuterClass.getDescriptor(),
          });
      internal_static_ChapterStateNotify_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_ChapterStateNotify_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ChapterStateNotify_descriptor,
          new java.lang.String[] { "NeedPlayerLevel", "NeedBeginTime", "ChapterState", "ChapterId", });
      internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor =
        internal_static_ChapterStateNotify_descriptor.getNestedTypes().get(0);
      internal_static_ChapterStateNotify_NeedPlayerLevel_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor,
          new java.lang.String[] { "ConfigNeedPlayerLevel", "IsLimit", });
      internal_static_ChapterStateNotify_NeedBeginTime_descriptor =
        internal_static_ChapterStateNotify_descriptor.getNestedTypes().get(1);
      internal_static_ChapterStateNotify_NeedBeginTime_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ChapterStateNotify_NeedBeginTime_descriptor,
          new java.lang.String[] { "ConfigNeedBeginTime", "IsLimit", });
      emu.grasscutter.net.proto.ChapterStateOuterClass.getDescriptor();
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  