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

package emu.grasscutter.net.proto;

public final class TowerAllDataRspOuterClass {
  private TowerAllDataRspOuterClass() {}
  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 TowerAllDataRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TowerAllDataRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 tower_schedule_id = 10;</code>
     * @return The towerScheduleId.
     */
    int getTowerScheduleId();

    /**
     * <code>uint32 daily_level_index = 9;</code>
     * @return The dailyLevelIndex.
     */
    int getDailyLevelIndex();

    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    int getSkipFloorGrantedRewardItemMapCount();
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    boolean containsSkipFloorGrantedRewardItemMap(
        int key);
    /**
     * Use {@link #getSkipFloorGrantedRewardItemMapMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.Integer>
    getSkipFloorGrantedRewardItemMap();
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.Integer>
    getSkipFloorGrantedRewardItemMapMap();
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */

    int getSkipFloorGrantedRewardItemMapOrDefault(
        int key,
        int defaultValue);
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */

    int getSkipFloorGrantedRewardItemMapOrThrow(
        int key);

    /**
     * <code>bool is_first_interact = 3;</code>
     * @return The isFirstInteract.
     */
    boolean getIsFirstInteract();

    /**
     * <code>bool is_finished_entrance_floor = 1;</code>
     * @return The isFinishedEntranceFloor.
     */
    boolean getIsFinishedEntranceFloor();

    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> 
        getTowerFloorRecordListList();
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord getTowerFloorRecordList(int index);
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    int getTowerFloorRecordListCount();
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    java.util.List<? extends emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder> 
        getTowerFloorRecordListOrBuilderList();
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder getTowerFloorRecordListOrBuilder(
        int index);

    /**
     * <code>uint32 daily_floor_id = 11;</code>
     * @return The dailyFloorId.
     */
    int getDailyFloorId();

    /**
     * <code>uint32 commemorative_reward_id = 13;</code>
     * @return The commemorativeRewardId.
     */
    int getCommemorativeRewardId();

    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     * @return Whether the lastScheduleMonthlyBrief field is set.
     */
    boolean hasLastScheduleMonthlyBrief();
    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     * @return The lastScheduleMonthlyBrief.
     */
    emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getLastScheduleMonthlyBrief();
    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     */
    emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getLastScheduleMonthlyBriefOrBuilder();

    /**
     * <code>uint32 next_schedule_change_time = 6;</code>
     * @return The nextScheduleChangeTime.
     */
    int getNextScheduleChangeTime();

    /**
     * <code>uint32 valid_tower_record_num = 7;</code>
     * @return The validTowerRecordNum.
     */
    int getValidTowerRecordNum();

    /**
     * <code>uint32 skip_to_floor_index = 2;</code>
     * @return The skipToFloorIndex.
     */
    int getSkipToFloorIndex();

    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    int getFloorOpenTimeMapCount();
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    boolean containsFloorOpenTimeMap(
        int key);
    /**
     * Use {@link #getFloorOpenTimeMapMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.Integer>
    getFloorOpenTimeMap();
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.Integer>
    getFloorOpenTimeMapMap();
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */

    int getFloorOpenTimeMapOrDefault(
        int key,
        int defaultValue);
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */

    int getFloorOpenTimeMapOrThrow(
        int key);

    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     * @return Whether the curLevelRecord field is set.
     */
    boolean hasCurLevelRecord();
    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     * @return The curLevelRecord.
     */
    emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord getCurLevelRecord();
    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     */
    emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder getCurLevelRecordOrBuilder();

    /**
     * <code>int32 retcode = 8;</code>
     * @return The retcode.
     */
    int getRetcode();

    /**
     * <code>uint32 schedule_start_time = 914;</code>
     * @return The scheduleStartTime.
     */
    int getScheduleStartTime();

    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     * @return Whether the monthlyBrief field is set.
     */
    boolean hasMonthlyBrief();
    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     * @return The monthlyBrief.
     */
    emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getMonthlyBrief();
    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     */
    emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getMonthlyBriefOrBuilder();
  }
  /**
   * <pre>
   * CmdId: 2473
   * EnetChannelId: 0
   * EnetIsReliable: false
   * IsAllowClient: true
   * </pre>
   *
   * Protobuf type {@code TowerAllDataRsp}
   */
  public static final class TowerAllDataRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TowerAllDataRsp)
      TowerAllDataRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TowerAllDataRsp.newBuilder() to construct.
    private TowerAllDataRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TowerAllDataRsp() {
      towerFloorRecordList_ = java.util.Collections.emptyList();
    }

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

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

              isFinishedEntranceFloor_ = input.readBool();
              break;
            }
            case 16: {

              skipToFloorIndex_ = input.readUInt32();
              break;
            }
            case 24: {

              isFirstInteract_ = input.readBool();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                floorOpenTimeMap_ = com.google.protobuf.MapField.newMapField(
                    FloorOpenTimeMapDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000004;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.Integer>
              floorOpenTimeMap__ = input.readMessage(
                  FloorOpenTimeMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              floorOpenTimeMap_.getMutableMap().put(
                  floorOpenTimeMap__.getKey(), floorOpenTimeMap__.getValue());
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                towerFloorRecordList_ = new java.util.ArrayList<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord>();
                mutable_bitField0_ |= 0x00000002;
              }
              towerFloorRecordList_.add(
                  input.readMessage(emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.parser(), extensionRegistry));
              break;
            }
            case 48: {

              nextScheduleChangeTime_ = input.readUInt32();
              break;
            }
            case 56: {

              validTowerRecordNum_ = input.readUInt32();
              break;
            }
            case 64: {

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

              dailyLevelIndex_ = input.readUInt32();
              break;
            }
            case 80: {

              towerScheduleId_ = input.readUInt32();
              break;
            }
            case 88: {

              dailyFloorId_ = input.readUInt32();
              break;
            }
            case 98: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                skipFloorGrantedRewardItemMap_ = com.google.protobuf.MapField.newMapField(
                    SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.Integer>
              skipFloorGrantedRewardItemMap__ = input.readMessage(
                  SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              skipFloorGrantedRewardItemMap_.getMutableMap().put(
                  skipFloorGrantedRewardItemMap__.getKey(), skipFloorGrantedRewardItemMap__.getValue());
              break;
            }
            case 104: {

              commemorativeRewardId_ = input.readUInt32();
              break;
            }
            case 114: {
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder subBuilder = null;
              if (monthlyBrief_ != null) {
                subBuilder = monthlyBrief_.toBuilder();
              }
              monthlyBrief_ = input.readMessage(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(monthlyBrief_);
                monthlyBrief_ = subBuilder.buildPartial();
              }

              break;
            }
            case 122: {
              emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder subBuilder = null;
              if (curLevelRecord_ != null) {
                subBuilder = curLevelRecord_.toBuilder();
              }
              curLevelRecord_ = input.readMessage(emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(curLevelRecord_);
                curLevelRecord_ = subBuilder.buildPartial();
              }

              break;
            }
            case 7312: {

              scheduleStartTime_ = input.readUInt32();
              break;
            }
            case 9778: {
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder subBuilder = null;
              if (lastScheduleMonthlyBrief_ != null) {
                subBuilder = lastScheduleMonthlyBrief_.toBuilder();
              }
              lastScheduleMonthlyBrief_ = input.readMessage(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(lastScheduleMonthlyBrief_);
                lastScheduleMonthlyBrief_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          towerFloorRecordList_ = java.util.Collections.unmodifiableList(towerFloorRecordList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 12:
          return internalGetSkipFloorGrantedRewardItemMap();
        case 4:
          return internalGetFloorOpenTimeMap();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.class, emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.Builder.class);
    }

    public static final int TOWER_SCHEDULE_ID_FIELD_NUMBER = 10;
    private int towerScheduleId_;
    /**
     * <code>uint32 tower_schedule_id = 10;</code>
     * @return The towerScheduleId.
     */
    @java.lang.Override
    public int getTowerScheduleId() {
      return towerScheduleId_;
    }

    public static final int DAILY_LEVEL_INDEX_FIELD_NUMBER = 9;
    private int dailyLevelIndex_;
    /**
     * <code>uint32 daily_level_index = 9;</code>
     * @return The dailyLevelIndex.
     */
    @java.lang.Override
    public int getDailyLevelIndex() {
      return dailyLevelIndex_;
    }

    public static final int SKIP_FLOOR_GRANTED_REWARD_ITEM_MAP_FIELD_NUMBER = 12;
    private static final class SkipFloorGrantedRewardItemMapDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.Integer> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.Integer>newDefaultInstance(
                  emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.UINT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.UINT32,
                  0);
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.Integer> skipFloorGrantedRewardItemMap_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
    internalGetSkipFloorGrantedRewardItemMap() {
      if (skipFloorGrantedRewardItemMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry);
      }
      return skipFloorGrantedRewardItemMap_;
    }

    public int getSkipFloorGrantedRewardItemMapCount() {
      return internalGetSkipFloorGrantedRewardItemMap().getMap().size();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */

    @java.lang.Override
    public boolean containsSkipFloorGrantedRewardItemMap(
        int key) {
      
      return internalGetSkipFloorGrantedRewardItemMap().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSkipFloorGrantedRewardItemMapMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.Integer> getSkipFloorGrantedRewardItemMap() {
      return getSkipFloorGrantedRewardItemMapMap();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.Integer, java.lang.Integer> getSkipFloorGrantedRewardItemMapMap() {
      return internalGetSkipFloorGrantedRewardItemMap().getMap();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    @java.lang.Override

    public int getSkipFloorGrantedRewardItemMapOrDefault(
        int key,
        int defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.Integer> map =
          internalGetSkipFloorGrantedRewardItemMap().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
     */
    @java.lang.Override

    public int getSkipFloorGrantedRewardItemMapOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.Integer> map =
          internalGetSkipFloorGrantedRewardItemMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int IS_FIRST_INTERACT_FIELD_NUMBER = 3;
    private boolean isFirstInteract_;
    /**
     * <code>bool is_first_interact = 3;</code>
     * @return The isFirstInteract.
     */
    @java.lang.Override
    public boolean getIsFirstInteract() {
      return isFirstInteract_;
    }

    public static final int IS_FINISHED_ENTRANCE_FLOOR_FIELD_NUMBER = 1;
    private boolean isFinishedEntranceFloor_;
    /**
     * <code>bool is_finished_entrance_floor = 1;</code>
     * @return The isFinishedEntranceFloor.
     */
    @java.lang.Override
    public boolean getIsFinishedEntranceFloor() {
      return isFinishedEntranceFloor_;
    }

    public static final int TOWER_FLOOR_RECORD_LIST_FIELD_NUMBER = 5;
    private java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> towerFloorRecordList_;
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    @java.lang.Override
    public java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> getTowerFloorRecordListList() {
      return towerFloorRecordList_;
    }
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder> 
        getTowerFloorRecordListOrBuilderList() {
      return towerFloorRecordList_;
    }
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    @java.lang.Override
    public int getTowerFloorRecordListCount() {
      return towerFloorRecordList_.size();
    }
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord getTowerFloorRecordList(int index) {
      return towerFloorRecordList_.get(index);
    }
    /**
     * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder getTowerFloorRecordListOrBuilder(
        int index) {
      return towerFloorRecordList_.get(index);
    }

    public static final int DAILY_FLOOR_ID_FIELD_NUMBER = 11;
    private int dailyFloorId_;
    /**
     * <code>uint32 daily_floor_id = 11;</code>
     * @return The dailyFloorId.
     */
    @java.lang.Override
    public int getDailyFloorId() {
      return dailyFloorId_;
    }

    public static final int COMMEMORATIVE_REWARD_ID_FIELD_NUMBER = 13;
    private int commemorativeRewardId_;
    /**
     * <code>uint32 commemorative_reward_id = 13;</code>
     * @return The commemorativeRewardId.
     */
    @java.lang.Override
    public int getCommemorativeRewardId() {
      return commemorativeRewardId_;
    }

    public static final int LAST_SCHEDULE_MONTHLY_BRIEF_FIELD_NUMBER = 1222;
    private emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief lastScheduleMonthlyBrief_;
    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     * @return Whether the lastScheduleMonthlyBrief field is set.
     */
    @java.lang.Override
    public boolean hasLastScheduleMonthlyBrief() {
      return lastScheduleMonthlyBrief_ != null;
    }
    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     * @return The lastScheduleMonthlyBrief.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getLastScheduleMonthlyBrief() {
      return lastScheduleMonthlyBrief_ == null ? emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : lastScheduleMonthlyBrief_;
    }
    /**
     * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getLastScheduleMonthlyBriefOrBuilder() {
      return getLastScheduleMonthlyBrief();
    }

    public static final int NEXT_SCHEDULE_CHANGE_TIME_FIELD_NUMBER = 6;
    private int nextScheduleChangeTime_;
    /**
     * <code>uint32 next_schedule_change_time = 6;</code>
     * @return The nextScheduleChangeTime.
     */
    @java.lang.Override
    public int getNextScheduleChangeTime() {
      return nextScheduleChangeTime_;
    }

    public static final int VALID_TOWER_RECORD_NUM_FIELD_NUMBER = 7;
    private int validTowerRecordNum_;
    /**
     * <code>uint32 valid_tower_record_num = 7;</code>
     * @return The validTowerRecordNum.
     */
    @java.lang.Override
    public int getValidTowerRecordNum() {
      return validTowerRecordNum_;
    }

    public static final int SKIP_TO_FLOOR_INDEX_FIELD_NUMBER = 2;
    private int skipToFloorIndex_;
    /**
     * <code>uint32 skip_to_floor_index = 2;</code>
     * @return The skipToFloorIndex.
     */
    @java.lang.Override
    public int getSkipToFloorIndex() {
      return skipToFloorIndex_;
    }

    public static final int FLOOR_OPEN_TIME_MAP_FIELD_NUMBER = 4;
    private static final class FloorOpenTimeMapDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.Integer> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.Integer>newDefaultInstance(
                  emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.UINT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.UINT32,
                  0);
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.Integer> floorOpenTimeMap_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
    internalGetFloorOpenTimeMap() {
      if (floorOpenTimeMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            FloorOpenTimeMapDefaultEntryHolder.defaultEntry);
      }
      return floorOpenTimeMap_;
    }

    public int getFloorOpenTimeMapCount() {
      return internalGetFloorOpenTimeMap().getMap().size();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */

    @java.lang.Override
    public boolean containsFloorOpenTimeMap(
        int key) {
      
      return internalGetFloorOpenTimeMap().getMap().containsKey(key);
    }
    /**
     * Use {@link #getFloorOpenTimeMapMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.Integer> getFloorOpenTimeMap() {
      return getFloorOpenTimeMapMap();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.Integer, java.lang.Integer> getFloorOpenTimeMapMap() {
      return internalGetFloorOpenTimeMap().getMap();
    }
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    @java.lang.Override

    public int getFloorOpenTimeMapOrDefault(
        int key,
        int defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.Integer> map =
          internalGetFloorOpenTimeMap().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
     */
    @java.lang.Override

    public int getFloorOpenTimeMapOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.Integer> map =
          internalGetFloorOpenTimeMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CUR_LEVEL_RECORD_FIELD_NUMBER = 15;
    private emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord curLevelRecord_;
    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     * @return Whether the curLevelRecord field is set.
     */
    @java.lang.Override
    public boolean hasCurLevelRecord() {
      return curLevelRecord_ != null;
    }
    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     * @return The curLevelRecord.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord getCurLevelRecord() {
      return curLevelRecord_ == null ? emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.getDefaultInstance() : curLevelRecord_;
    }
    /**
     * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder getCurLevelRecordOrBuilder() {
      return getCurLevelRecord();
    }

    public static final int RETCODE_FIELD_NUMBER = 8;
    private int retcode_;
    /**
     * <code>int32 retcode = 8;</code>
     * @return The retcode.
     */
    @java.lang.Override
    public int getRetcode() {
      return retcode_;
    }

    public static final int SCHEDULE_START_TIME_FIELD_NUMBER = 914;
    private int scheduleStartTime_;
    /**
     * <code>uint32 schedule_start_time = 914;</code>
     * @return The scheduleStartTime.
     */
    @java.lang.Override
    public int getScheduleStartTime() {
      return scheduleStartTime_;
    }

    public static final int MONTHLY_BRIEF_FIELD_NUMBER = 14;
    private emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief monthlyBrief_;
    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     * @return Whether the monthlyBrief field is set.
     */
    @java.lang.Override
    public boolean hasMonthlyBrief() {
      return monthlyBrief_ != null;
    }
    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     * @return The monthlyBrief.
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getMonthlyBrief() {
      return monthlyBrief_ == null ? emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : monthlyBrief_;
    }
    /**
     * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
     */
    @java.lang.Override
    public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getMonthlyBriefOrBuilder() {
      return getMonthlyBrief();
    }

    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 (isFinishedEntranceFloor_ != false) {
        output.writeBool(1, isFinishedEntranceFloor_);
      }
      if (skipToFloorIndex_ != 0) {
        output.writeUInt32(2, skipToFloorIndex_);
      }
      if (isFirstInteract_ != false) {
        output.writeBool(3, isFirstInteract_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetFloorOpenTimeMap(),
          FloorOpenTimeMapDefaultEntryHolder.defaultEntry,
          4);
      for (int i = 0; i < towerFloorRecordList_.size(); i++) {
        output.writeMessage(5, towerFloorRecordList_.get(i));
      }
      if (nextScheduleChangeTime_ != 0) {
        output.writeUInt32(6, nextScheduleChangeTime_);
      }
      if (validTowerRecordNum_ != 0) {
        output.writeUInt32(7, validTowerRecordNum_);
      }
      if (retcode_ != 0) {
        output.writeInt32(8, retcode_);
      }
      if (dailyLevelIndex_ != 0) {
        output.writeUInt32(9, dailyLevelIndex_);
      }
      if (towerScheduleId_ != 0) {
        output.writeUInt32(10, towerScheduleId_);
      }
      if (dailyFloorId_ != 0) {
        output.writeUInt32(11, dailyFloorId_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetSkipFloorGrantedRewardItemMap(),
          SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry,
          12);
      if (commemorativeRewardId_ != 0) {
        output.writeUInt32(13, commemorativeRewardId_);
      }
      if (monthlyBrief_ != null) {
        output.writeMessage(14, getMonthlyBrief());
      }
      if (curLevelRecord_ != null) {
        output.writeMessage(15, getCurLevelRecord());
      }
      if (scheduleStartTime_ != 0) {
        output.writeUInt32(914, scheduleStartTime_);
      }
      if (lastScheduleMonthlyBrief_ != null) {
        output.writeMessage(1222, getLastScheduleMonthlyBrief());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (isFinishedEntranceFloor_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, isFinishedEntranceFloor_);
      }
      if (skipToFloorIndex_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, skipToFloorIndex_);
      }
      if (isFirstInteract_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isFirstInteract_);
      }
      for (java.util.Map.Entry<java.lang.Integer, java.lang.Integer> entry
           : internalGetFloorOpenTimeMap().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.Integer>
        floorOpenTimeMap__ = FloorOpenTimeMapDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, floorOpenTimeMap__);
      }
      for (int i = 0; i < towerFloorRecordList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, towerFloorRecordList_.get(i));
      }
      if (nextScheduleChangeTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, nextScheduleChangeTime_);
      }
      if (validTowerRecordNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, validTowerRecordNum_);
      }
      if (retcode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, retcode_);
      }
      if (dailyLevelIndex_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, dailyLevelIndex_);
      }
      if (towerScheduleId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, towerScheduleId_);
      }
      if (dailyFloorId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, dailyFloorId_);
      }
      for (java.util.Map.Entry<java.lang.Integer, java.lang.Integer> entry
           : internalGetSkipFloorGrantedRewardItemMap().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.Integer>
        skipFloorGrantedRewardItemMap__ = SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, skipFloorGrantedRewardItemMap__);
      }
      if (commemorativeRewardId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, commemorativeRewardId_);
      }
      if (monthlyBrief_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getMonthlyBrief());
      }
      if (curLevelRecord_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getCurLevelRecord());
      }
      if (scheduleStartTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(914, scheduleStartTime_);
      }
      if (lastScheduleMonthlyBrief_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1222, getLastScheduleMonthlyBrief());
      }
      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.TowerAllDataRspOuterClass.TowerAllDataRsp)) {
        return super.equals(obj);
      }
      emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp other = (emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp) obj;

      if (getTowerScheduleId()
          != other.getTowerScheduleId()) return false;
      if (getDailyLevelIndex()
          != other.getDailyLevelIndex()) return false;
      if (!internalGetSkipFloorGrantedRewardItemMap().equals(
          other.internalGetSkipFloorGrantedRewardItemMap())) return false;
      if (getIsFirstInteract()
          != other.getIsFirstInteract()) return false;
      if (getIsFinishedEntranceFloor()
          != other.getIsFinishedEntranceFloor()) return false;
      if (!getTowerFloorRecordListList()
          .equals(other.getTowerFloorRecordListList())) return false;
      if (getDailyFloorId()
          != other.getDailyFloorId()) return false;
      if (getCommemorativeRewardId()
          != other.getCommemorativeRewardId()) return false;
      if (hasLastScheduleMonthlyBrief() != other.hasLastScheduleMonthlyBrief()) return false;
      if (hasLastScheduleMonthlyBrief()) {
        if (!getLastScheduleMonthlyBrief()
            .equals(other.getLastScheduleMonthlyBrief())) return false;
      }
      if (getNextScheduleChangeTime()
          != other.getNextScheduleChangeTime()) return false;
      if (getValidTowerRecordNum()
          != other.getValidTowerRecordNum()) return false;
      if (getSkipToFloorIndex()
          != other.getSkipToFloorIndex()) return false;
      if (!internalGetFloorOpenTimeMap().equals(
          other.internalGetFloorOpenTimeMap())) return false;
      if (hasCurLevelRecord() != other.hasCurLevelRecord()) return false;
      if (hasCurLevelRecord()) {
        if (!getCurLevelRecord()
            .equals(other.getCurLevelRecord())) return false;
      }
      if (getRetcode()
          != other.getRetcode()) return false;
      if (getScheduleStartTime()
          != other.getScheduleStartTime()) return false;
      if (hasMonthlyBrief() != other.hasMonthlyBrief()) return false;
      if (hasMonthlyBrief()) {
        if (!getMonthlyBrief()
            .equals(other.getMonthlyBrief())) 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) + TOWER_SCHEDULE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getTowerScheduleId();
      hash = (37 * hash) + DAILY_LEVEL_INDEX_FIELD_NUMBER;
      hash = (53 * hash) + getDailyLevelIndex();
      if (!internalGetSkipFloorGrantedRewardItemMap().getMap().isEmpty()) {
        hash = (37 * hash) + SKIP_FLOOR_GRANTED_REWARD_ITEM_MAP_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSkipFloorGrantedRewardItemMap().hashCode();
      }
      hash = (37 * hash) + IS_FIRST_INTERACT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsFirstInteract());
      hash = (37 * hash) + IS_FINISHED_ENTRANCE_FLOOR_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsFinishedEntranceFloor());
      if (getTowerFloorRecordListCount() > 0) {
        hash = (37 * hash) + TOWER_FLOOR_RECORD_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getTowerFloorRecordListList().hashCode();
      }
      hash = (37 * hash) + DAILY_FLOOR_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDailyFloorId();
      hash = (37 * hash) + COMMEMORATIVE_REWARD_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCommemorativeRewardId();
      if (hasLastScheduleMonthlyBrief()) {
        hash = (37 * hash) + LAST_SCHEDULE_MONTHLY_BRIEF_FIELD_NUMBER;
        hash = (53 * hash) + getLastScheduleMonthlyBrief().hashCode();
      }
      hash = (37 * hash) + NEXT_SCHEDULE_CHANGE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getNextScheduleChangeTime();
      hash = (37 * hash) + VALID_TOWER_RECORD_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getValidTowerRecordNum();
      hash = (37 * hash) + SKIP_TO_FLOOR_INDEX_FIELD_NUMBER;
      hash = (53 * hash) + getSkipToFloorIndex();
      if (!internalGetFloorOpenTimeMap().getMap().isEmpty()) {
        hash = (37 * hash) + FLOOR_OPEN_TIME_MAP_FIELD_NUMBER;
        hash = (53 * hash) + internalGetFloorOpenTimeMap().hashCode();
      }
      if (hasCurLevelRecord()) {
        hash = (37 * hash) + CUR_LEVEL_RECORD_FIELD_NUMBER;
        hash = (53 * hash) + getCurLevelRecord().hashCode();
      }
      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
      hash = (53 * hash) + getRetcode();
      hash = (37 * hash) + SCHEDULE_START_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getScheduleStartTime();
      if (hasMonthlyBrief()) {
        hash = (37 * hash) + MONTHLY_BRIEF_FIELD_NUMBER;
        hash = (53 * hash) + getMonthlyBrief().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp 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.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp 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.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp 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.TowerAllDataRspOuterClass.TowerAllDataRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp 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.TowerAllDataRspOuterClass.TowerAllDataRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp 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.TowerAllDataRspOuterClass.TowerAllDataRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * CmdId: 2473
     * EnetChannelId: 0
     * EnetIsReliable: false
     * IsAllowClient: true
     * </pre>
     *
     * Protobuf type {@code TowerAllDataRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TowerAllDataRsp)
        emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 12:
            return internalGetSkipFloorGrantedRewardItemMap();
          case 4:
            return internalGetFloorOpenTimeMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 12:
            return internalGetMutableSkipFloorGrantedRewardItemMap();
          case 4:
            return internalGetMutableFloorOpenTimeMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.class, emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.Builder.class);
      }

      // Construct using emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        dailyLevelIndex_ = 0;

        internalGetMutableSkipFloorGrantedRewardItemMap().clear();
        isFirstInteract_ = false;

        isFinishedEntranceFloor_ = false;

        if (towerFloorRecordListBuilder_ == null) {
          towerFloorRecordList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          towerFloorRecordListBuilder_.clear();
        }
        dailyFloorId_ = 0;

        commemorativeRewardId_ = 0;

        if (lastScheduleMonthlyBriefBuilder_ == null) {
          lastScheduleMonthlyBrief_ = null;
        } else {
          lastScheduleMonthlyBrief_ = null;
          lastScheduleMonthlyBriefBuilder_ = null;
        }
        nextScheduleChangeTime_ = 0;

        validTowerRecordNum_ = 0;

        skipToFloorIndex_ = 0;

        internalGetMutableFloorOpenTimeMap().clear();
        if (curLevelRecordBuilder_ == null) {
          curLevelRecord_ = null;
        } else {
          curLevelRecord_ = null;
          curLevelRecordBuilder_ = null;
        }
        retcode_ = 0;

        scheduleStartTime_ = 0;

        if (monthlyBriefBuilder_ == null) {
          monthlyBrief_ = null;
        } else {
          monthlyBrief_ = null;
          monthlyBriefBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.internal_static_TowerAllDataRsp_descriptor;
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp getDefaultInstanceForType() {
        return emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.getDefaultInstance();
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp build() {
        emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp buildPartial() {
        emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp result = new emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp(this);
        int from_bitField0_ = bitField0_;
        result.towerScheduleId_ = towerScheduleId_;
        result.dailyLevelIndex_ = dailyLevelIndex_;
        result.skipFloorGrantedRewardItemMap_ = internalGetSkipFloorGrantedRewardItemMap();
        result.skipFloorGrantedRewardItemMap_.makeImmutable();
        result.isFirstInteract_ = isFirstInteract_;
        result.isFinishedEntranceFloor_ = isFinishedEntranceFloor_;
        if (towerFloorRecordListBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            towerFloorRecordList_ = java.util.Collections.unmodifiableList(towerFloorRecordList_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.towerFloorRecordList_ = towerFloorRecordList_;
        } else {
          result.towerFloorRecordList_ = towerFloorRecordListBuilder_.build();
        }
        result.dailyFloorId_ = dailyFloorId_;
        result.commemorativeRewardId_ = commemorativeRewardId_;
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          result.lastScheduleMonthlyBrief_ = lastScheduleMonthlyBrief_;
        } else {
          result.lastScheduleMonthlyBrief_ = lastScheduleMonthlyBriefBuilder_.build();
        }
        result.nextScheduleChangeTime_ = nextScheduleChangeTime_;
        result.validTowerRecordNum_ = validTowerRecordNum_;
        result.skipToFloorIndex_ = skipToFloorIndex_;
        result.floorOpenTimeMap_ = internalGetFloorOpenTimeMap();
        result.floorOpenTimeMap_.makeImmutable();
        if (curLevelRecordBuilder_ == null) {
          result.curLevelRecord_ = curLevelRecord_;
        } else {
          result.curLevelRecord_ = curLevelRecordBuilder_.build();
        }
        result.retcode_ = retcode_;
        result.scheduleStartTime_ = scheduleStartTime_;
        if (monthlyBriefBuilder_ == null) {
          result.monthlyBrief_ = monthlyBrief_;
        } else {
          result.monthlyBrief_ = monthlyBriefBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp) {
          return mergeFrom((emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp other) {
        if (other == emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp.getDefaultInstance()) return this;
        if (other.getTowerScheduleId() != 0) {
          setTowerScheduleId(other.getTowerScheduleId());
        }
        if (other.getDailyLevelIndex() != 0) {
          setDailyLevelIndex(other.getDailyLevelIndex());
        }
        internalGetMutableSkipFloorGrantedRewardItemMap().mergeFrom(
            other.internalGetSkipFloorGrantedRewardItemMap());
        if (other.getIsFirstInteract() != false) {
          setIsFirstInteract(other.getIsFirstInteract());
        }
        if (other.getIsFinishedEntranceFloor() != false) {
          setIsFinishedEntranceFloor(other.getIsFinishedEntranceFloor());
        }
        if (towerFloorRecordListBuilder_ == null) {
          if (!other.towerFloorRecordList_.isEmpty()) {
            if (towerFloorRecordList_.isEmpty()) {
              towerFloorRecordList_ = other.towerFloorRecordList_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureTowerFloorRecordListIsMutable();
              towerFloorRecordList_.addAll(other.towerFloorRecordList_);
            }
            onChanged();
          }
        } else {
          if (!other.towerFloorRecordList_.isEmpty()) {
            if (towerFloorRecordListBuilder_.isEmpty()) {
              towerFloorRecordListBuilder_.dispose();
              towerFloorRecordListBuilder_ = null;
              towerFloorRecordList_ = other.towerFloorRecordList_;
              bitField0_ = (bitField0_ & ~0x00000002);
              towerFloorRecordListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTowerFloorRecordListFieldBuilder() : null;
            } else {
              towerFloorRecordListBuilder_.addAllMessages(other.towerFloorRecordList_);
            }
          }
        }
        if (other.getDailyFloorId() != 0) {
          setDailyFloorId(other.getDailyFloorId());
        }
        if (other.getCommemorativeRewardId() != 0) {
          setCommemorativeRewardId(other.getCommemorativeRewardId());
        }
        if (other.hasLastScheduleMonthlyBrief()) {
          mergeLastScheduleMonthlyBrief(other.getLastScheduleMonthlyBrief());
        }
        if (other.getNextScheduleChangeTime() != 0) {
          setNextScheduleChangeTime(other.getNextScheduleChangeTime());
        }
        if (other.getValidTowerRecordNum() != 0) {
          setValidTowerRecordNum(other.getValidTowerRecordNum());
        }
        if (other.getSkipToFloorIndex() != 0) {
          setSkipToFloorIndex(other.getSkipToFloorIndex());
        }
        internalGetMutableFloorOpenTimeMap().mergeFrom(
            other.internalGetFloorOpenTimeMap());
        if (other.hasCurLevelRecord()) {
          mergeCurLevelRecord(other.getCurLevelRecord());
        }
        if (other.getRetcode() != 0) {
          setRetcode(other.getRetcode());
        }
        if (other.getScheduleStartTime() != 0) {
          setScheduleStartTime(other.getScheduleStartTime());
        }
        if (other.hasMonthlyBrief()) {
          mergeMonthlyBrief(other.getMonthlyBrief());
        }
        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.TowerAllDataRspOuterClass.TowerAllDataRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int towerScheduleId_ ;
      /**
       * <code>uint32 tower_schedule_id = 10;</code>
       * @return The towerScheduleId.
       */
      @java.lang.Override
      public int getTowerScheduleId() {
        return towerScheduleId_;
      }
      /**
       * <code>uint32 tower_schedule_id = 10;</code>
       * @param value The towerScheduleId to set.
       * @return This builder for chaining.
       */
      public Builder setTowerScheduleId(int value) {
        
        towerScheduleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 tower_schedule_id = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearTowerScheduleId() {
        
        towerScheduleId_ = 0;
        onChanged();
        return this;
      }

      private int dailyLevelIndex_ ;
      /**
       * <code>uint32 daily_level_index = 9;</code>
       * @return The dailyLevelIndex.
       */
      @java.lang.Override
      public int getDailyLevelIndex() {
        return dailyLevelIndex_;
      }
      /**
       * <code>uint32 daily_level_index = 9;</code>
       * @param value The dailyLevelIndex to set.
       * @return This builder for chaining.
       */
      public Builder setDailyLevelIndex(int value) {
        
        dailyLevelIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 daily_level_index = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearDailyLevelIndex() {
        
        dailyLevelIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.Integer> skipFloorGrantedRewardItemMap_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
      internalGetSkipFloorGrantedRewardItemMap() {
        if (skipFloorGrantedRewardItemMap_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry);
        }
        return skipFloorGrantedRewardItemMap_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
      internalGetMutableSkipFloorGrantedRewardItemMap() {
        onChanged();;
        if (skipFloorGrantedRewardItemMap_ == null) {
          skipFloorGrantedRewardItemMap_ = com.google.protobuf.MapField.newMapField(
              SkipFloorGrantedRewardItemMapDefaultEntryHolder.defaultEntry);
        }
        if (!skipFloorGrantedRewardItemMap_.isMutable()) {
          skipFloorGrantedRewardItemMap_ = skipFloorGrantedRewardItemMap_.copy();
        }
        return skipFloorGrantedRewardItemMap_;
      }

      public int getSkipFloorGrantedRewardItemMapCount() {
        return internalGetSkipFloorGrantedRewardItemMap().getMap().size();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */

      @java.lang.Override
      public boolean containsSkipFloorGrantedRewardItemMap(
          int key) {
        
        return internalGetSkipFloorGrantedRewardItemMap().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSkipFloorGrantedRewardItemMapMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.Integer> getSkipFloorGrantedRewardItemMap() {
        return getSkipFloorGrantedRewardItemMapMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.Integer, java.lang.Integer> getSkipFloorGrantedRewardItemMapMap() {
        return internalGetSkipFloorGrantedRewardItemMap().getMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */
      @java.lang.Override

      public int getSkipFloorGrantedRewardItemMapOrDefault(
          int key,
          int defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.Integer> map =
            internalGetSkipFloorGrantedRewardItemMap().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */
      @java.lang.Override

      public int getSkipFloorGrantedRewardItemMapOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.Integer> map =
            internalGetSkipFloorGrantedRewardItemMap().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSkipFloorGrantedRewardItemMap() {
        internalGetMutableSkipFloorGrantedRewardItemMap().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */

      public Builder removeSkipFloorGrantedRewardItemMap(
          int key) {
        
        internalGetMutableSkipFloorGrantedRewardItemMap().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.Integer>
      getMutableSkipFloorGrantedRewardItemMap() {
        return internalGetMutableSkipFloorGrantedRewardItemMap().getMutableMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */
      public Builder putSkipFloorGrantedRewardItemMap(
          int key,
          int value) {
        
        
        internalGetMutableSkipFloorGrantedRewardItemMap().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; skip_floor_granted_reward_item_map = 12;</code>
       */

      public Builder putAllSkipFloorGrantedRewardItemMap(
          java.util.Map<java.lang.Integer, java.lang.Integer> values) {
        internalGetMutableSkipFloorGrantedRewardItemMap().getMutableMap()
            .putAll(values);
        return this;
      }

      private boolean isFirstInteract_ ;
      /**
       * <code>bool is_first_interact = 3;</code>
       * @return The isFirstInteract.
       */
      @java.lang.Override
      public boolean getIsFirstInteract() {
        return isFirstInteract_;
      }
      /**
       * <code>bool is_first_interact = 3;</code>
       * @param value The isFirstInteract to set.
       * @return This builder for chaining.
       */
      public Builder setIsFirstInteract(boolean value) {
        
        isFirstInteract_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_first_interact = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsFirstInteract() {
        
        isFirstInteract_ = false;
        onChanged();
        return this;
      }

      private boolean isFinishedEntranceFloor_ ;
      /**
       * <code>bool is_finished_entrance_floor = 1;</code>
       * @return The isFinishedEntranceFloor.
       */
      @java.lang.Override
      public boolean getIsFinishedEntranceFloor() {
        return isFinishedEntranceFloor_;
      }
      /**
       * <code>bool is_finished_entrance_floor = 1;</code>
       * @param value The isFinishedEntranceFloor to set.
       * @return This builder for chaining.
       */
      public Builder setIsFinishedEntranceFloor(boolean value) {
        
        isFinishedEntranceFloor_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_finished_entrance_floor = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsFinishedEntranceFloor() {
        
        isFinishedEntranceFloor_ = false;
        onChanged();
        return this;
      }

      private java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> towerFloorRecordList_ =
        java.util.Collections.emptyList();
      private void ensureTowerFloorRecordListIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          towerFloorRecordList_ = new java.util.ArrayList<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord>(towerFloorRecordList_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder> towerFloorRecordListBuilder_;

      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> getTowerFloorRecordListList() {
        if (towerFloorRecordListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(towerFloorRecordList_);
        } else {
          return towerFloorRecordListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public int getTowerFloorRecordListCount() {
        if (towerFloorRecordListBuilder_ == null) {
          return towerFloorRecordList_.size();
        } else {
          return towerFloorRecordListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord getTowerFloorRecordList(int index) {
        if (towerFloorRecordListBuilder_ == null) {
          return towerFloorRecordList_.get(index);
        } else {
          return towerFloorRecordListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder setTowerFloorRecordList(
          int index, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord value) {
        if (towerFloorRecordListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.set(index, value);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder setTowerFloorRecordList(
          int index, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder builderForValue) {
        if (towerFloorRecordListBuilder_ == null) {
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.set(index, builderForValue.build());
          onChanged();
        } else {
          towerFloorRecordListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder addTowerFloorRecordList(emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord value) {
        if (towerFloorRecordListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.add(value);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder addTowerFloorRecordList(
          int index, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord value) {
        if (towerFloorRecordListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.add(index, value);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder addTowerFloorRecordList(
          emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder builderForValue) {
        if (towerFloorRecordListBuilder_ == null) {
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.add(builderForValue.build());
          onChanged();
        } else {
          towerFloorRecordListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder addTowerFloorRecordList(
          int index, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder builderForValue) {
        if (towerFloorRecordListBuilder_ == null) {
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.add(index, builderForValue.build());
          onChanged();
        } else {
          towerFloorRecordListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder addAllTowerFloorRecordList(
          java.lang.Iterable<? extends emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord> values) {
        if (towerFloorRecordListBuilder_ == null) {
          ensureTowerFloorRecordListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, towerFloorRecordList_);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder clearTowerFloorRecordList() {
        if (towerFloorRecordListBuilder_ == null) {
          towerFloorRecordList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public Builder removeTowerFloorRecordList(int index) {
        if (towerFloorRecordListBuilder_ == null) {
          ensureTowerFloorRecordListIsMutable();
          towerFloorRecordList_.remove(index);
          onChanged();
        } else {
          towerFloorRecordListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder getTowerFloorRecordListBuilder(
          int index) {
        return getTowerFloorRecordListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder getTowerFloorRecordListOrBuilder(
          int index) {
        if (towerFloorRecordListBuilder_ == null) {
          return towerFloorRecordList_.get(index);  } else {
          return towerFloorRecordListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public java.util.List<? extends emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder> 
           getTowerFloorRecordListOrBuilderList() {
        if (towerFloorRecordListBuilder_ != null) {
          return towerFloorRecordListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(towerFloorRecordList_);
        }
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder addTowerFloorRecordListBuilder() {
        return getTowerFloorRecordListFieldBuilder().addBuilder(
            emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.getDefaultInstance());
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder addTowerFloorRecordListBuilder(
          int index) {
        return getTowerFloorRecordListFieldBuilder().addBuilder(
            index, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.getDefaultInstance());
      }
      /**
       * <code>repeated .TowerFloorRecord tower_floor_record_list = 5;</code>
       */
      public java.util.List<emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder> 
           getTowerFloorRecordListBuilderList() {
        return getTowerFloorRecordListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder> 
          getTowerFloorRecordListFieldBuilder() {
        if (towerFloorRecordListBuilder_ == null) {
          towerFloorRecordListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord.Builder, emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecordOrBuilder>(
                  towerFloorRecordList_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          towerFloorRecordList_ = null;
        }
        return towerFloorRecordListBuilder_;
      }

      private int dailyFloorId_ ;
      /**
       * <code>uint32 daily_floor_id = 11;</code>
       * @return The dailyFloorId.
       */
      @java.lang.Override
      public int getDailyFloorId() {
        return dailyFloorId_;
      }
      /**
       * <code>uint32 daily_floor_id = 11;</code>
       * @param value The dailyFloorId to set.
       * @return This builder for chaining.
       */
      public Builder setDailyFloorId(int value) {
        
        dailyFloorId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 daily_floor_id = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDailyFloorId() {
        
        dailyFloorId_ = 0;
        onChanged();
        return this;
      }

      private int commemorativeRewardId_ ;
      /**
       * <code>uint32 commemorative_reward_id = 13;</code>
       * @return The commemorativeRewardId.
       */
      @java.lang.Override
      public int getCommemorativeRewardId() {
        return commemorativeRewardId_;
      }
      /**
       * <code>uint32 commemorative_reward_id = 13;</code>
       * @param value The commemorativeRewardId to set.
       * @return This builder for chaining.
       */
      public Builder setCommemorativeRewardId(int value) {
        
        commemorativeRewardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 commemorative_reward_id = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearCommemorativeRewardId() {
        
        commemorativeRewardId_ = 0;
        onChanged();
        return this;
      }

      private emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief lastScheduleMonthlyBrief_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder> lastScheduleMonthlyBriefBuilder_;
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       * @return Whether the lastScheduleMonthlyBrief field is set.
       */
      public boolean hasLastScheduleMonthlyBrief() {
        return lastScheduleMonthlyBriefBuilder_ != null || lastScheduleMonthlyBrief_ != null;
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       * @return The lastScheduleMonthlyBrief.
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getLastScheduleMonthlyBrief() {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          return lastScheduleMonthlyBrief_ == null ? emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : lastScheduleMonthlyBrief_;
        } else {
          return lastScheduleMonthlyBriefBuilder_.getMessage();
        }
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public Builder setLastScheduleMonthlyBrief(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief value) {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastScheduleMonthlyBrief_ = value;
          onChanged();
        } else {
          lastScheduleMonthlyBriefBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public Builder setLastScheduleMonthlyBrief(
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder builderForValue) {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          lastScheduleMonthlyBrief_ = builderForValue.build();
          onChanged();
        } else {
          lastScheduleMonthlyBriefBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public Builder mergeLastScheduleMonthlyBrief(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief value) {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          if (lastScheduleMonthlyBrief_ != null) {
            lastScheduleMonthlyBrief_ =
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.newBuilder(lastScheduleMonthlyBrief_).mergeFrom(value).buildPartial();
          } else {
            lastScheduleMonthlyBrief_ = value;
          }
          onChanged();
        } else {
          lastScheduleMonthlyBriefBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public Builder clearLastScheduleMonthlyBrief() {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          lastScheduleMonthlyBrief_ = null;
          onChanged();
        } else {
          lastScheduleMonthlyBrief_ = null;
          lastScheduleMonthlyBriefBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder getLastScheduleMonthlyBriefBuilder() {
        
        onChanged();
        return getLastScheduleMonthlyBriefFieldBuilder().getBuilder();
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getLastScheduleMonthlyBriefOrBuilder() {
        if (lastScheduleMonthlyBriefBuilder_ != null) {
          return lastScheduleMonthlyBriefBuilder_.getMessageOrBuilder();
        } else {
          return lastScheduleMonthlyBrief_ == null ?
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : lastScheduleMonthlyBrief_;
        }
      }
      /**
       * <code>.TowerMonthlyBrief last_schedule_monthly_brief = 1222;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder> 
          getLastScheduleMonthlyBriefFieldBuilder() {
        if (lastScheduleMonthlyBriefBuilder_ == null) {
          lastScheduleMonthlyBriefBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder>(
                  getLastScheduleMonthlyBrief(),
                  getParentForChildren(),
                  isClean());
          lastScheduleMonthlyBrief_ = null;
        }
        return lastScheduleMonthlyBriefBuilder_;
      }

      private int nextScheduleChangeTime_ ;
      /**
       * <code>uint32 next_schedule_change_time = 6;</code>
       * @return The nextScheduleChangeTime.
       */
      @java.lang.Override
      public int getNextScheduleChangeTime() {
        return nextScheduleChangeTime_;
      }
      /**
       * <code>uint32 next_schedule_change_time = 6;</code>
       * @param value The nextScheduleChangeTime to set.
       * @return This builder for chaining.
       */
      public Builder setNextScheduleChangeTime(int value) {
        
        nextScheduleChangeTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 next_schedule_change_time = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextScheduleChangeTime() {
        
        nextScheduleChangeTime_ = 0;
        onChanged();
        return this;
      }

      private int validTowerRecordNum_ ;
      /**
       * <code>uint32 valid_tower_record_num = 7;</code>
       * @return The validTowerRecordNum.
       */
      @java.lang.Override
      public int getValidTowerRecordNum() {
        return validTowerRecordNum_;
      }
      /**
       * <code>uint32 valid_tower_record_num = 7;</code>
       * @param value The validTowerRecordNum to set.
       * @return This builder for chaining.
       */
      public Builder setValidTowerRecordNum(int value) {
        
        validTowerRecordNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 valid_tower_record_num = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidTowerRecordNum() {
        
        validTowerRecordNum_ = 0;
        onChanged();
        return this;
      }

      private int skipToFloorIndex_ ;
      /**
       * <code>uint32 skip_to_floor_index = 2;</code>
       * @return The skipToFloorIndex.
       */
      @java.lang.Override
      public int getSkipToFloorIndex() {
        return skipToFloorIndex_;
      }
      /**
       * <code>uint32 skip_to_floor_index = 2;</code>
       * @param value The skipToFloorIndex to set.
       * @return This builder for chaining.
       */
      public Builder setSkipToFloorIndex(int value) {
        
        skipToFloorIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 skip_to_floor_index = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipToFloorIndex() {
        
        skipToFloorIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.Integer> floorOpenTimeMap_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
      internalGetFloorOpenTimeMap() {
        if (floorOpenTimeMap_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              FloorOpenTimeMapDefaultEntryHolder.defaultEntry);
        }
        return floorOpenTimeMap_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
      internalGetMutableFloorOpenTimeMap() {
        onChanged();;
        if (floorOpenTimeMap_ == null) {
          floorOpenTimeMap_ = com.google.protobuf.MapField.newMapField(
              FloorOpenTimeMapDefaultEntryHolder.defaultEntry);
        }
        if (!floorOpenTimeMap_.isMutable()) {
          floorOpenTimeMap_ = floorOpenTimeMap_.copy();
        }
        return floorOpenTimeMap_;
      }

      public int getFloorOpenTimeMapCount() {
        return internalGetFloorOpenTimeMap().getMap().size();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */

      @java.lang.Override
      public boolean containsFloorOpenTimeMap(
          int key) {
        
        return internalGetFloorOpenTimeMap().getMap().containsKey(key);
      }
      /**
       * Use {@link #getFloorOpenTimeMapMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.Integer> getFloorOpenTimeMap() {
        return getFloorOpenTimeMapMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.Integer, java.lang.Integer> getFloorOpenTimeMapMap() {
        return internalGetFloorOpenTimeMap().getMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */
      @java.lang.Override

      public int getFloorOpenTimeMapOrDefault(
          int key,
          int defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.Integer> map =
            internalGetFloorOpenTimeMap().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */
      @java.lang.Override

      public int getFloorOpenTimeMapOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.Integer> map =
            internalGetFloorOpenTimeMap().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearFloorOpenTimeMap() {
        internalGetMutableFloorOpenTimeMap().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */

      public Builder removeFloorOpenTimeMap(
          int key) {
        
        internalGetMutableFloorOpenTimeMap().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.Integer>
      getMutableFloorOpenTimeMap() {
        return internalGetMutableFloorOpenTimeMap().getMutableMap();
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */
      public Builder putFloorOpenTimeMap(
          int key,
          int value) {
        
        
        internalGetMutableFloorOpenTimeMap().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;uint32, uint32&gt; floor_open_time_map = 4;</code>
       */

      public Builder putAllFloorOpenTimeMap(
          java.util.Map<java.lang.Integer, java.lang.Integer> values) {
        internalGetMutableFloorOpenTimeMap().getMutableMap()
            .putAll(values);
        return this;
      }

      private emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord curLevelRecord_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder> curLevelRecordBuilder_;
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       * @return Whether the curLevelRecord field is set.
       */
      public boolean hasCurLevelRecord() {
        return curLevelRecordBuilder_ != null || curLevelRecord_ != null;
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       * @return The curLevelRecord.
       */
      public emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord getCurLevelRecord() {
        if (curLevelRecordBuilder_ == null) {
          return curLevelRecord_ == null ? emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.getDefaultInstance() : curLevelRecord_;
        } else {
          return curLevelRecordBuilder_.getMessage();
        }
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public Builder setCurLevelRecord(emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord value) {
        if (curLevelRecordBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          curLevelRecord_ = value;
          onChanged();
        } else {
          curLevelRecordBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public Builder setCurLevelRecord(
          emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder builderForValue) {
        if (curLevelRecordBuilder_ == null) {
          curLevelRecord_ = builderForValue.build();
          onChanged();
        } else {
          curLevelRecordBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public Builder mergeCurLevelRecord(emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord value) {
        if (curLevelRecordBuilder_ == null) {
          if (curLevelRecord_ != null) {
            curLevelRecord_ =
              emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.newBuilder(curLevelRecord_).mergeFrom(value).buildPartial();
          } else {
            curLevelRecord_ = value;
          }
          onChanged();
        } else {
          curLevelRecordBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public Builder clearCurLevelRecord() {
        if (curLevelRecordBuilder_ == null) {
          curLevelRecord_ = null;
          onChanged();
        } else {
          curLevelRecord_ = null;
          curLevelRecordBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder getCurLevelRecordBuilder() {
        
        onChanged();
        return getCurLevelRecordFieldBuilder().getBuilder();
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      public emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder getCurLevelRecordOrBuilder() {
        if (curLevelRecordBuilder_ != null) {
          return curLevelRecordBuilder_.getMessageOrBuilder();
        } else {
          return curLevelRecord_ == null ?
              emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.getDefaultInstance() : curLevelRecord_;
        }
      }
      /**
       * <code>.TowerCurLevelRecord cur_level_record = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder> 
          getCurLevelRecordFieldBuilder() {
        if (curLevelRecordBuilder_ == null) {
          curLevelRecordBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord.Builder, emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecordOrBuilder>(
                  getCurLevelRecord(),
                  getParentForChildren(),
                  isClean());
          curLevelRecord_ = null;
        }
        return curLevelRecordBuilder_;
      }

      private int retcode_ ;
      /**
       * <code>int32 retcode = 8;</code>
       * @return The retcode.
       */
      @java.lang.Override
      public int getRetcode() {
        return retcode_;
      }
      /**
       * <code>int32 retcode = 8;</code>
       * @param value The retcode to set.
       * @return This builder for chaining.
       */
      public Builder setRetcode(int value) {
        
        retcode_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 retcode = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetcode() {
        
        retcode_ = 0;
        onChanged();
        return this;
      }

      private int scheduleStartTime_ ;
      /**
       * <code>uint32 schedule_start_time = 914;</code>
       * @return The scheduleStartTime.
       */
      @java.lang.Override
      public int getScheduleStartTime() {
        return scheduleStartTime_;
      }
      /**
       * <code>uint32 schedule_start_time = 914;</code>
       * @param value The scheduleStartTime to set.
       * @return This builder for chaining.
       */
      public Builder setScheduleStartTime(int value) {
        
        scheduleStartTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 schedule_start_time = 914;</code>
       * @return This builder for chaining.
       */
      public Builder clearScheduleStartTime() {
        
        scheduleStartTime_ = 0;
        onChanged();
        return this;
      }

      private emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief monthlyBrief_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder> monthlyBriefBuilder_;
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       * @return Whether the monthlyBrief field is set.
       */
      public boolean hasMonthlyBrief() {
        return monthlyBriefBuilder_ != null || monthlyBrief_ != null;
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       * @return The monthlyBrief.
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief getMonthlyBrief() {
        if (monthlyBriefBuilder_ == null) {
          return monthlyBrief_ == null ? emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : monthlyBrief_;
        } else {
          return monthlyBriefBuilder_.getMessage();
        }
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public Builder setMonthlyBrief(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief value) {
        if (monthlyBriefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          monthlyBrief_ = value;
          onChanged();
        } else {
          monthlyBriefBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public Builder setMonthlyBrief(
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder builderForValue) {
        if (monthlyBriefBuilder_ == null) {
          monthlyBrief_ = builderForValue.build();
          onChanged();
        } else {
          monthlyBriefBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public Builder mergeMonthlyBrief(emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief value) {
        if (monthlyBriefBuilder_ == null) {
          if (monthlyBrief_ != null) {
            monthlyBrief_ =
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.newBuilder(monthlyBrief_).mergeFrom(value).buildPartial();
          } else {
            monthlyBrief_ = value;
          }
          onChanged();
        } else {
          monthlyBriefBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public Builder clearMonthlyBrief() {
        if (monthlyBriefBuilder_ == null) {
          monthlyBrief_ = null;
          onChanged();
        } else {
          monthlyBrief_ = null;
          monthlyBriefBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder getMonthlyBriefBuilder() {
        
        onChanged();
        return getMonthlyBriefFieldBuilder().getBuilder();
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      public emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder getMonthlyBriefOrBuilder() {
        if (monthlyBriefBuilder_ != null) {
          return monthlyBriefBuilder_.getMessageOrBuilder();
        } else {
          return monthlyBrief_ == null ?
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.getDefaultInstance() : monthlyBrief_;
        }
      }
      /**
       * <code>.TowerMonthlyBrief monthly_brief = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder> 
          getMonthlyBriefFieldBuilder() {
        if (monthlyBriefBuilder_ == null) {
          monthlyBriefBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBrief.Builder, emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.TowerMonthlyBriefOrBuilder>(
                  getMonthlyBrief(),
                  getParentForChildren(),
                  isClean());
          monthlyBrief_ = null;
        }
        return monthlyBriefBuilder_;
      }
      @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:TowerAllDataRsp)
    }

    // @@protoc_insertion_point(class_scope:TowerAllDataRsp)
    private static final emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp();
    }

    public static emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TowerAllDataRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TowerAllDataRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_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\025TowerAllDataRsp.proto\032\031TowerCurLevelRe" +
      "cord.proto\032\026TowerFloorRecord.proto\032\027Towe" +
      "rMonthlyBrief.proto\"\274\006\n\017TowerAllDataRsp\022" +
      "\031\n\021tower_schedule_id\030\n \001(\r\022\031\n\021daily_leve" +
      "l_index\030\t \001(\r\022_\n\"skip_floor_granted_rewa" +
      "rd_item_map\030\014 \003(\01323.TowerAllDataRsp.Skip" +
      "FloorGrantedRewardItemMapEntry\022\031\n\021is_fir" +
      "st_interact\030\003 \001(\010\022\"\n\032is_finished_entranc" +
      "e_floor\030\001 \001(\010\0222\n\027tower_floor_record_list" +
      "\030\005 \003(\0132\021.TowerFloorRecord\022\026\n\016daily_floor" +
      "_id\030\013 \001(\r\022\037\n\027commemorative_reward_id\030\r \001" +
      "(\r\0228\n\033last_schedule_monthly_brief\030\306\t \001(\013" +
      "2\022.TowerMonthlyBrief\022!\n\031next_schedule_ch" +
      "ange_time\030\006 \001(\r\022\036\n\026valid_tower_record_nu" +
      "m\030\007 \001(\r\022\033\n\023skip_to_floor_index\030\002 \001(\r\022C\n\023" +
      "floor_open_time_map\030\004 \003(\0132&.TowerAllData" +
      "Rsp.FloorOpenTimeMapEntry\022.\n\020cur_level_r" +
      "ecord\030\017 \001(\0132\024.TowerCurLevelRecord\022\017\n\007ret" +
      "code\030\010 \001(\005\022\034\n\023schedule_start_time\030\222\007 \001(\r" +
      "\022)\n\rmonthly_brief\030\016 \001(\0132\022.TowerMonthlyBr" +
      "ief\032D\n\"SkipFloorGrantedRewardItemMapEntr" +
      "y\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\0028\001\0327\n\025Flo" +
      "orOpenTimeMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value" +
      "\030\002 \001(\r:\0028\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.TowerCurLevelRecordOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.TowerFloorRecordOuterClass.getDescriptor(),
          emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.getDescriptor(),
        });
    internal_static_TowerAllDataRsp_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_TowerAllDataRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TowerAllDataRsp_descriptor,
        new java.lang.String[] { "TowerScheduleId", "DailyLevelIndex", "SkipFloorGrantedRewardItemMap", "IsFirstInteract", "IsFinishedEntranceFloor", "TowerFloorRecordList", "DailyFloorId", "CommemorativeRewardId", "LastScheduleMonthlyBrief", "NextScheduleChangeTime", "ValidTowerRecordNum", "SkipToFloorIndex", "FloorOpenTimeMap", "CurLevelRecord", "Retcode", "ScheduleStartTime", "MonthlyBrief", });
    internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_descriptor =
      internal_static_TowerAllDataRsp_descriptor.getNestedTypes().get(0);
    internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TowerAllDataRsp_SkipFloorGrantedRewardItemMapEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_descriptor =
      internal_static_TowerAllDataRsp_descriptor.getNestedTypes().get(1);
    internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TowerAllDataRsp_FloorOpenTimeMapEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.getDescriptor();
    emu.grasscutter.net.proto.TowerFloorRecordOuterClass.getDescriptor();
    emu.grasscutter.net.proto.TowerMonthlyBriefOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
