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

package pb.xiugou.x1.protobuf.village;

public final class Village {
  private Village() {}
  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 VillageInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.VillageInfoResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *关卡ID（相当于sceneId）
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    int getLevel();

    /**
     * <pre>
     *今日挑战次数
     * </pre>
     *
     * <code>int32 today_times = 2;</code>
     * @return The todayTimes.
     */
    int getTodayTimes();

    /**
     * <pre>
     *下次重置时间
     * </pre>
     *
     * <code>int64 next_reset_time = 3;</code>
     * @return The nextResetTime.
     */
    long getNextResetTime();
  }
  /**
   * <pre>
   *村庄守护数据
   * </pre>
   *
   * Protobuf type {@code pb.VillageInfoResponse}
   */
  public  static final class VillageInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageInfoResponse)
      VillageInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageInfoResponse.newBuilder() to construct.
    private VillageInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageInfoResponse() {
    }

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

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

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

              todayTimes_ = input.readInt32();
              break;
            }
            case 24: {

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700001: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    public static final int LEVEL_FIELD_NUMBER = 1;
    private int level_;
    /**
     * <pre>
     *关卡ID（相当于sceneId）
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    public static final int TODAY_TIMES_FIELD_NUMBER = 2;
    private int todayTimes_;
    /**
     * <pre>
     *今日挑战次数
     * </pre>
     *
     * <code>int32 today_times = 2;</code>
     * @return The todayTimes.
     */
    public int getTodayTimes() {
      return todayTimes_;
    }

    public static final int NEXT_RESET_TIME_FIELD_NUMBER = 3;
    private long nextResetTime_;
    /**
     * <pre>
     *下次重置时间
     * </pre>
     *
     * <code>int64 next_reset_time = 3;</code>
     * @return The nextResetTime.
     */
    public long getNextResetTime() {
      return nextResetTime_;
    }

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

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

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

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

      if (getLevel()
          != other.getLevel()) return false;
      if (getTodayTimes()
          != other.getTodayTimes()) return false;
      if (getNextResetTime()
          != other.getNextResetTime()) 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) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      hash = (37 * hash) + TODAY_TIMES_FIELD_NUMBER;
      hash = (53 * hash) + getTodayTimes();
      hash = (37 * hash) + NEXT_RESET_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getNextResetTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *村庄守护数据
     * </pre>
     *
     * Protobuf type {@code pb.VillageInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageInfoResponse)
        pb.xiugou.x1.protobuf.village.Village.VillageInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        todayTimes_ = 0;

        nextResetTime_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse result = new pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse(this);
        result.level_ = level_;
        result.todayTimes_ = todayTimes_;
        result.nextResetTime_ = nextResetTime_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse.getDefaultInstance()) return this;
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        if (other.getTodayTimes() != 0) {
          setTodayTimes(other.getTodayTimes());
        }
        if (other.getNextResetTime() != 0L) {
          setNextResetTime(other.getNextResetTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int level_ ;
      /**
       * <pre>
       *关卡ID（相当于sceneId）
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @return The level.
       */
      public int getLevel() {
        return level_;
      }
      /**
       * <pre>
       *关卡ID（相当于sceneId）
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *关卡ID（相当于sceneId）
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        
        level_ = 0;
        onChanged();
        return this;
      }

      private int todayTimes_ ;
      /**
       * <pre>
       *今日挑战次数
       * </pre>
       *
       * <code>int32 today_times = 2;</code>
       * @return The todayTimes.
       */
      public int getTodayTimes() {
        return todayTimes_;
      }
      /**
       * <pre>
       *今日挑战次数
       * </pre>
       *
       * <code>int32 today_times = 2;</code>
       * @param value The todayTimes to set.
       * @return This builder for chaining.
       */
      public Builder setTodayTimes(int value) {
        
        todayTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *今日挑战次数
       * </pre>
       *
       * <code>int32 today_times = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTodayTimes() {
        
        todayTimes_ = 0;
        onChanged();
        return this;
      }

      private long nextResetTime_ ;
      /**
       * <pre>
       *下次重置时间
       * </pre>
       *
       * <code>int64 next_reset_time = 3;</code>
       * @return The nextResetTime.
       */
      public long getNextResetTime() {
        return nextResetTime_;
      }
      /**
       * <pre>
       *下次重置时间
       * </pre>
       *
       * <code>int64 next_reset_time = 3;</code>
       * @param value The nextResetTime to set.
       * @return This builder for chaining.
       */
      public Builder setNextResetTime(long value) {
        
        nextResetTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *下次重置时间
       * </pre>
       *
       * <code>int64 next_reset_time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextResetTime() {
        
        nextResetTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageInfoResponse)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *关卡
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    int getLevel();
  }
  /**
   * <pre>
   *扫荡
   * </pre>
   *
   * Protobuf type {@code pb.VillageSweepRequest}
   */
  public  static final class VillageSweepRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageSweepRequest)
      VillageSweepRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageSweepRequest.newBuilder() to construct.
    private VillageSweepRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageSweepRequest() {
    }

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700002: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    public static final int LEVEL_FIELD_NUMBER = 1;
    private int level_;
    /**
     * <pre>
     *关卡
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    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 (level_ != 0) {
        output.writeInt32(1, level_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (level_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, level_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getLevel()
          != other.getLevel()) 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) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *扫荡
     * </pre>
     *
     * Protobuf type {@code pb.VillageSweepRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageSweepRequest)
        pb.xiugou.x1.protobuf.village.Village.VillageSweepRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest result = new pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest(this);
        result.level_ = level_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest.getDefaultInstance()) return this;
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int level_ ;
      /**
       * <pre>
       *关卡
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @return The level.
       */
      public int getLevel() {
        return level_;
      }
      /**
       * <pre>
       *关卡
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *关卡
       * </pre>
       *
       * <code>int32 level = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        
        level_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageSweepRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageSweepRequest)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageSweepRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VillageSweepResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.VillageSweepResponse)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.VillageSweepResponse}
   */
  public  static final class VillageSweepResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageSweepResponse)
      VillageSweepResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageSweepResponse.newBuilder() to construct.
    private VillageSweepResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageSweepResponse() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VillageSweepResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700002: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    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 {
      unknownFields.writeTo(output);
    }

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

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      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 = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.VillageSweepResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageSweepResponse)
        pb.xiugou.x1.protobuf.village.Village.VillageSweepResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageSweepResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse result = new pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageSweepResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageSweepResponse)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageSweepResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *英雄ID
     * </pre>
     *
     * <code>int32 hero_id = 1;</code>
     * @return The heroId.
     */
    int getHeroId();
  }
  /**
   * <pre>
   *召唤英雄
   * </pre>
   *
   * Protobuf type {@code pb.VillageConfirmHeroRequest}
   */
  public  static final class VillageConfirmHeroRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageConfirmHeroRequest)
      VillageConfirmHeroRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageConfirmHeroRequest.newBuilder() to construct.
    private VillageConfirmHeroRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageConfirmHeroRequest() {
    }

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700003: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    public static final int HERO_ID_FIELD_NUMBER = 1;
    private int heroId_;
    /**
     * <pre>
     *英雄ID
     * </pre>
     *
     * <code>int32 hero_id = 1;</code>
     * @return The heroId.
     */
    public int getHeroId() {
      return heroId_;
    }

    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 (heroId_ != 0) {
        output.writeInt32(1, heroId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (heroId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, heroId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getHeroId()
          != other.getHeroId()) 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) + HERO_ID_FIELD_NUMBER;
      hash = (53 * hash) + getHeroId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *召唤英雄
     * </pre>
     *
     * Protobuf type {@code pb.VillageConfirmHeroRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageConfirmHeroRequest)
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest result = new pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest(this);
        result.heroId_ = heroId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest.getDefaultInstance()) return this;
        if (other.getHeroId() != 0) {
          setHeroId(other.getHeroId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int heroId_ ;
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @return The heroId.
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @param value The heroId to set.
       * @return This builder for chaining.
       */
      public Builder setHeroId(int value) {
        
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeroId() {
        
        heroId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageConfirmHeroRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageConfirmHeroRequest)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *英雄ID
     * </pre>
     *
     * <code>int32 hero_id = 1;</code>
     * @return The heroId.
     */
    int getHeroId();

    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     * @return Whether the sprite field is set.
     */
    boolean hasSprite();
    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     * @return The sprite.
     */
    pb.xiugou.x1.protobuf.battle.Battle.PbSprite getSprite();
    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     */
    pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder getSpriteOrBuilder();
  }
  /**
   * Protobuf type {@code pb.VillageConfirmHeroResponse}
   */
  public  static final class VillageConfirmHeroResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageConfirmHeroResponse)
      VillageConfirmHeroResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageConfirmHeroResponse.newBuilder() to construct.
    private VillageConfirmHeroResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageConfirmHeroResponse() {
    }

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

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

              heroId_ = input.readInt32();
              break;
            }
            case 18: {
              pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder subBuilder = null;
              if (sprite_ != null) {
                subBuilder = sprite_.toBuilder();
              }
              sprite_ = input.readMessage(pb.xiugou.x1.protobuf.battle.Battle.PbSprite.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sprite_);
                sprite_ = subBuilder.buildPartial();
              }

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700003: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    public static final int HERO_ID_FIELD_NUMBER = 1;
    private int heroId_;
    /**
     * <pre>
     *英雄ID
     * </pre>
     *
     * <code>int32 hero_id = 1;</code>
     * @return The heroId.
     */
    public int getHeroId() {
      return heroId_;
    }

    public static final int SPRITE_FIELD_NUMBER = 2;
    private pb.xiugou.x1.protobuf.battle.Battle.PbSprite sprite_;
    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     * @return Whether the sprite field is set.
     */
    public boolean hasSprite() {
      return sprite_ != null;
    }
    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     * @return The sprite.
     */
    public pb.xiugou.x1.protobuf.battle.Battle.PbSprite getSprite() {
      return sprite_ == null ? pb.xiugou.x1.protobuf.battle.Battle.PbSprite.getDefaultInstance() : sprite_;
    }
    /**
     * <pre>
     *新参战的单位
     * </pre>
     *
     * <code>.pb.PbSprite sprite = 2;</code>
     */
    public pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder getSpriteOrBuilder() {
      return getSprite();
    }

    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 (heroId_ != 0) {
        output.writeInt32(1, heroId_);
      }
      if (sprite_ != null) {
        output.writeMessage(2, getSprite());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (heroId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, heroId_);
      }
      if (sprite_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getSprite());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getHeroId()
          != other.getHeroId()) return false;
      if (hasSprite() != other.hasSprite()) return false;
      if (hasSprite()) {
        if (!getSprite()
            .equals(other.getSprite())) 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) + HERO_ID_FIELD_NUMBER;
      hash = (53 * hash) + getHeroId();
      if (hasSprite()) {
        hash = (37 * hash) + SPRITE_FIELD_NUMBER;
        hash = (53 * hash) + getSprite().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.VillageConfirmHeroResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageConfirmHeroResponse)
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        if (spriteBuilder_ == null) {
          sprite_ = null;
        } else {
          sprite_ = null;
          spriteBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageConfirmHeroResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse result = new pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse(this);
        result.heroId_ = heroId_;
        if (spriteBuilder_ == null) {
          result.sprite_ = sprite_;
        } else {
          result.sprite_ = spriteBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse.getDefaultInstance()) return this;
        if (other.getHeroId() != 0) {
          setHeroId(other.getHeroId());
        }
        if (other.hasSprite()) {
          mergeSprite(other.getSprite());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int heroId_ ;
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @return The heroId.
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @param value The heroId to set.
       * @return This builder for chaining.
       */
      public Builder setHeroId(int value) {
        
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄ID
       * </pre>
       *
       * <code>int32 hero_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeroId() {
        
        heroId_ = 0;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.battle.Battle.PbSprite sprite_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.battle.Battle.PbSprite, pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder, pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder> spriteBuilder_;
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       * @return Whether the sprite field is set.
       */
      public boolean hasSprite() {
        return spriteBuilder_ != null || sprite_ != null;
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       * @return The sprite.
       */
      public pb.xiugou.x1.protobuf.battle.Battle.PbSprite getSprite() {
        if (spriteBuilder_ == null) {
          return sprite_ == null ? pb.xiugou.x1.protobuf.battle.Battle.PbSprite.getDefaultInstance() : sprite_;
        } else {
          return spriteBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public Builder setSprite(pb.xiugou.x1.protobuf.battle.Battle.PbSprite value) {
        if (spriteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sprite_ = value;
          onChanged();
        } else {
          spriteBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public Builder setSprite(
          pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder builderForValue) {
        if (spriteBuilder_ == null) {
          sprite_ = builderForValue.build();
          onChanged();
        } else {
          spriteBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public Builder mergeSprite(pb.xiugou.x1.protobuf.battle.Battle.PbSprite value) {
        if (spriteBuilder_ == null) {
          if (sprite_ != null) {
            sprite_ =
              pb.xiugou.x1.protobuf.battle.Battle.PbSprite.newBuilder(sprite_).mergeFrom(value).buildPartial();
          } else {
            sprite_ = value;
          }
          onChanged();
        } else {
          spriteBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public Builder clearSprite() {
        if (spriteBuilder_ == null) {
          sprite_ = null;
          onChanged();
        } else {
          sprite_ = null;
          spriteBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder getSpriteBuilder() {
        
        onChanged();
        return getSpriteFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      public pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder getSpriteOrBuilder() {
        if (spriteBuilder_ != null) {
          return spriteBuilder_.getMessageOrBuilder();
        } else {
          return sprite_ == null ?
              pb.xiugou.x1.protobuf.battle.Battle.PbSprite.getDefaultInstance() : sprite_;
        }
      }
      /**
       * <pre>
       *新参战的单位
       * </pre>
       *
       * <code>.pb.PbSprite sprite = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.battle.Battle.PbSprite, pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder, pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder> 
          getSpriteFieldBuilder() {
        if (spriteBuilder_ == null) {
          spriteBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.battle.Battle.PbSprite, pb.xiugou.x1.protobuf.battle.Battle.PbSprite.Builder, pb.xiugou.x1.protobuf.battle.Battle.PbSpriteOrBuilder>(
                  getSprite(),
                  getParentForChildren(),
                  isClean());
          sprite_ = null;
        }
        return spriteBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageConfirmHeroResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageConfirmHeroResponse)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageConfirmHeroResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VillageBuildRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.VillageBuildRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *建筑
   * </pre>
   *
   * Protobuf type {@code pb.VillageBuildRequest}
   */
  public  static final class VillageBuildRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageBuildRequest)
      VillageBuildRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageBuildRequest.newBuilder() to construct.
    private VillageBuildRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageBuildRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VillageBuildRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700004: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    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 {
      unknownFields.writeTo(output);
    }

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

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      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 = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *建筑
     * </pre>
     *
     * Protobuf type {@code pb.VillageBuildRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageBuildRequest)
        pb.xiugou.x1.protobuf.village.Village.VillageBuildRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.class, pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest result = new pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageBuildRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageBuildRequest)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageBuildRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *上限为3个栅栏
     * </pre>
     *
     * <code>int32 build_num = 1;</code>
     * @return The buildNum.
     */
    int getBuildNum();
  }
  /**
   * Protobuf type {@code pb.VillageBuildResponse}
   */
  public  static final class VillageBuildResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.VillageBuildResponse)
      VillageBuildResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VillageBuildResponse.newBuilder() to construct.
    private VillageBuildResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VillageBuildResponse() {
    }

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.Builder.class);
    }

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

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


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2700004: return ID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

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

    public static final int BUILD_NUM_FIELD_NUMBER = 1;
    private int buildNum_;
    /**
     * <pre>
     *上限为3个栅栏
     * </pre>
     *
     * <code>int32 build_num = 1;</code>
     * @return The buildNum.
     */
    public int getBuildNum() {
      return buildNum_;
    }

    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 (buildNum_ != 0) {
        output.writeInt32(1, buildNum_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (buildNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, buildNum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getBuildNum()
          != other.getBuildNum()) 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) + BUILD_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getBuildNum();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.VillageBuildResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.VillageBuildResponse)
        pb.xiugou.x1.protobuf.village.Village.VillageBuildResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.class, pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_VillageBuildResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse result = new pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse(this);
        result.buildNum_ = buildNum_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse.getDefaultInstance()) return this;
        if (other.getBuildNum() != 0) {
          setBuildNum(other.getBuildNum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int buildNum_ ;
      /**
       * <pre>
       *上限为3个栅栏
       * </pre>
       *
       * <code>int32 build_num = 1;</code>
       * @return The buildNum.
       */
      public int getBuildNum() {
        return buildNum_;
      }
      /**
       * <pre>
       *上限为3个栅栏
       * </pre>
       *
       * <code>int32 build_num = 1;</code>
       * @param value The buildNum to set.
       * @return This builder for chaining.
       */
      public Builder setBuildNum(int value) {
        
        buildNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *上限为3个栅栏
       * </pre>
       *
       * <code>int32 build_num = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuildNum() {
        
        buildNum_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.VillageBuildResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.VillageBuildResponse)
    private static final pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse();
    }

    public static pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.VillageBuildResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *关卡
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    int getLevel();

    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> 
        getRewardsList();
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing getRewards(int index);
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    int getRewardsCount();
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder> 
        getRewardsOrBuilderList();
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder getRewardsOrBuilder(
        int index);

    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> 
        getHerosList();
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeros(int index);
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    int getHerosCount();
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHerosOrBuilderList();
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHerosOrBuilder(
        int index);

    /**
     * <pre>
     *已经建造的栅栏数量最高为三个
     * </pre>
     *
     * <code>int32 build_nu = 4;</code>
     * @return The buildNu.
     */
    int getBuildNu();
  }
  /**
   * Protobuf type {@code pb.PbVillageBattleResult}
   */
  public  static final class PbVillageBattleResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbVillageBattleResult)
      PbVillageBattleResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbVillageBattleResult.newBuilder() to construct.
    private PbVillageBattleResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbVillageBattleResult() {
      rewards_ = java.util.Collections.emptyList();
      heros_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbVillageBattleResult(
        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: {

              level_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                rewards_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing>();
                mutable_bitField0_ |= 0x00000001;
              }
              rewards_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.parser(), extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                heros_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>();
                mutable_bitField0_ |= 0x00000002;
              }
              heros_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry));
              break;
            }
            case 32: {

              buildNu_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          rewards_ = java.util.Collections.unmodifiableList(rewards_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          heros_ = java.util.Collections.unmodifiableList(heros_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.class, pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.Builder.class);
    }

    public static final int LEVEL_FIELD_NUMBER = 1;
    private int level_;
    /**
     * <pre>
     *关卡
     * </pre>
     *
     * <code>int32 level = 1;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    public static final int REWARDS_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> rewards_;
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> getRewardsList() {
      return rewards_;
    }
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder> 
        getRewardsOrBuilderList() {
      return rewards_;
    }
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    public int getRewardsCount() {
      return rewards_.size();
    }
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing getRewards(int index) {
      return rewards_.get(index);
    }
    /**
     * <pre>
     *通关奖励
     * </pre>
     *
     * <code>repeated .pb.PbThing rewards = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder getRewardsOrBuilder(
        int index) {
      return rewards_.get(index);
    }

    public static final int HEROS_FIELD_NUMBER = 3;
    private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heros_;
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHerosList() {
      return heros_;
    }
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHerosOrBuilderList() {
      return heros_;
    }
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    public int getHerosCount() {
      return heros_.size();
    }
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeros(int index) {
      return heros_.get(index);
    }
    /**
     * <pre>
     *供选择的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heros = 3;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHerosOrBuilder(
        int index) {
      return heros_.get(index);
    }

    public static final int BUILD_NU_FIELD_NUMBER = 4;
    private int buildNu_;
    /**
     * <pre>
     *已经建造的栅栏数量最高为三个
     * </pre>
     *
     * <code>int32 build_nu = 4;</code>
     * @return The buildNu.
     */
    public int getBuildNu() {
      return buildNu_;
    }

    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 (level_ != 0) {
        output.writeInt32(1, level_);
      }
      for (int i = 0; i < rewards_.size(); i++) {
        output.writeMessage(2, rewards_.get(i));
      }
      for (int i = 0; i < heros_.size(); i++) {
        output.writeMessage(3, heros_.get(i));
      }
      if (buildNu_ != 0) {
        output.writeInt32(4, buildNu_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (level_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, level_);
      }
      for (int i = 0; i < rewards_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, rewards_.get(i));
      }
      for (int i = 0; i < heros_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, heros_.get(i));
      }
      if (buildNu_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, buildNu_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getLevel()
          != other.getLevel()) return false;
      if (!getRewardsList()
          .equals(other.getRewardsList())) return false;
      if (!getHerosList()
          .equals(other.getHerosList())) return false;
      if (getBuildNu()
          != other.getBuildNu()) 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) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      if (getRewardsCount() > 0) {
        hash = (37 * hash) + REWARDS_FIELD_NUMBER;
        hash = (53 * hash) + getRewardsList().hashCode();
      }
      if (getHerosCount() > 0) {
        hash = (37 * hash) + HEROS_FIELD_NUMBER;
        hash = (53 * hash) + getHerosList().hashCode();
      }
      hash = (37 * hash) + BUILD_NU_FIELD_NUMBER;
      hash = (53 * hash) + getBuildNu();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbVillageBattleResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbVillageBattleResult)
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.class, pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        if (rewardsBuilder_ == null) {
          rewards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          rewardsBuilder_.clear();
        }
        if (herosBuilder_ == null) {
          heros_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          herosBuilder_.clear();
        }
        buildNu_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleResult_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult result = new pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult(this);
        int from_bitField0_ = bitField0_;
        result.level_ = level_;
        if (rewardsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rewards_ = java.util.Collections.unmodifiableList(rewards_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rewards_ = rewards_;
        } else {
          result.rewards_ = rewardsBuilder_.build();
        }
        if (herosBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            heros_ = java.util.Collections.unmodifiableList(heros_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.heros_ = heros_;
        } else {
          result.heros_ = herosBuilder_.build();
        }
        result.buildNu_ = buildNu_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult.getDefaultInstance()) return this;
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        if (rewardsBuilder_ == null) {
          if (!other.rewards_.isEmpty()) {
            if (rewards_.isEmpty()) {
              rewards_ = other.rewards_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRewardsIsMutable();
              rewards_.addAll(other.rewards_);
            }
            onChanged();
          }
        } else {
          if (!other.rewards_.isEmpty()) {
            if (rewardsBuilder_.isEmpty()) {
              rewardsBuilder_.dispose();
              rewardsBuilder_ = null;
              rewards_ = other.rewards_;
              bitField0_ = (bitField0_ & ~0x00000001);
              rewardsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRewardsFieldBuilder() : null;
            } else {
              rewardsBuilder_.addAllMessages(other.rewards_);
            }
          }
        }
        if (herosBuilder_ == null) {
          if (!other.heros_.isEmpty()) {
            if (heros_.isEmpty()) {
              heros_ = other.heros_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHerosIsMutable();
              heros_.addAll(other.heros_);
            }
            onChanged();
          }
        } else {
          if (!other.heros_.isEmpty()) {
            if (herosBuilder_.isEmpty()) {
              herosBuilder_.dispose();
              herosBuilder_ = null;
              heros_ = other.heros_;
              bitField0_ = (bitField0_ & ~0x00000002);
              herosBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHerosFieldBuilder() : null;
            } else {
              herosBuilder_.addAllMessages(other.heros_);
            }
          }
        }
        if (other.getBuildNu() != 0) {
          setBuildNu(other.getBuildNu());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      private java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> rewards_ =
        java.util.Collections.emptyList();
      private void ensureRewardsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rewards_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing>(rewards_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder> rewardsBuilder_;

      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> getRewardsList() {
        if (rewardsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rewards_);
        } else {
          return rewardsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public int getRewardsCount() {
        if (rewardsBuilder_ == null) {
          return rewards_.size();
        } else {
          return rewardsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing getRewards(int index) {
        if (rewardsBuilder_ == null) {
          return rewards_.get(index);
        } else {
          return rewardsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder setRewards(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing value) {
        if (rewardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRewardsIsMutable();
          rewards_.set(index, value);
          onChanged();
        } else {
          rewardsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder setRewards(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder builderForValue) {
        if (rewardsBuilder_ == null) {
          ensureRewardsIsMutable();
          rewards_.set(index, builderForValue.build());
          onChanged();
        } else {
          rewardsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder addRewards(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing value) {
        if (rewardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRewardsIsMutable();
          rewards_.add(value);
          onChanged();
        } else {
          rewardsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder addRewards(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing value) {
        if (rewardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRewardsIsMutable();
          rewards_.add(index, value);
          onChanged();
        } else {
          rewardsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder addRewards(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder builderForValue) {
        if (rewardsBuilder_ == null) {
          ensureRewardsIsMutable();
          rewards_.add(builderForValue.build());
          onChanged();
        } else {
          rewardsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder addRewards(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder builderForValue) {
        if (rewardsBuilder_ == null) {
          ensureRewardsIsMutable();
          rewards_.add(index, builderForValue.build());
          onChanged();
        } else {
          rewardsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder addAllRewards(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing> values) {
        if (rewardsBuilder_ == null) {
          ensureRewardsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rewards_);
          onChanged();
        } else {
          rewardsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder clearRewards() {
        if (rewardsBuilder_ == null) {
          rewards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          rewardsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public Builder removeRewards(int index) {
        if (rewardsBuilder_ == null) {
          ensureRewardsIsMutable();
          rewards_.remove(index);
          onChanged();
        } else {
          rewardsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder getRewardsBuilder(
          int index) {
        return getRewardsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder getRewardsOrBuilder(
          int index) {
        if (rewardsBuilder_ == null) {
          return rewards_.get(index);  } else {
          return rewardsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder> 
           getRewardsOrBuilderList() {
        if (rewardsBuilder_ != null) {
          return rewardsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rewards_);
        }
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder addRewardsBuilder() {
        return getRewardsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.getDefaultInstance());
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder addRewardsBuilder(
          int index) {
        return getRewardsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.getDefaultInstance());
      }
      /**
       * <pre>
       *通关奖励
       * </pre>
       *
       * <code>repeated .pb.PbThing rewards = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder> 
           getRewardsBuilderList() {
        return getRewardsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder> 
          getRewardsFieldBuilder() {
        if (rewardsBuilder_ == null) {
          rewardsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThing.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingOrBuilder>(
                  rewards_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rewards_ = null;
        }
        return rewardsBuilder_;
      }

      private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heros_ =
        java.util.Collections.emptyList();
      private void ensureHerosIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          heros_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>(heros_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> herosBuilder_;

      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHerosList() {
        if (herosBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heros_);
        } else {
          return herosBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public int getHerosCount() {
        if (herosBuilder_ == null) {
          return heros_.size();
        } else {
          return herosBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeros(int index) {
        if (herosBuilder_ == null) {
          return heros_.get(index);
        } else {
          return herosBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder setHeros(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (herosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHerosIsMutable();
          heros_.set(index, value);
          onChanged();
        } else {
          herosBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder setHeros(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (herosBuilder_ == null) {
          ensureHerosIsMutable();
          heros_.set(index, builderForValue.build());
          onChanged();
        } else {
          herosBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder addHeros(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (herosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHerosIsMutable();
          heros_.add(value);
          onChanged();
        } else {
          herosBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder addHeros(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (herosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHerosIsMutable();
          heros_.add(index, value);
          onChanged();
        } else {
          herosBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder addHeros(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (herosBuilder_ == null) {
          ensureHerosIsMutable();
          heros_.add(builderForValue.build());
          onChanged();
        } else {
          herosBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder addHeros(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (herosBuilder_ == null) {
          ensureHerosIsMutable();
          heros_.add(index, builderForValue.build());
          onChanged();
        } else {
          herosBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder addAllHeros(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHero> values) {
        if (herosBuilder_ == null) {
          ensureHerosIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, heros_);
          onChanged();
        } else {
          herosBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder clearHeros() {
        if (herosBuilder_ == null) {
          heros_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          herosBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public Builder removeHeros(int index) {
        if (herosBuilder_ == null) {
          ensureHerosIsMutable();
          heros_.remove(index);
          onChanged();
        } else {
          herosBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getHerosBuilder(
          int index) {
        return getHerosFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHerosOrBuilder(
          int index) {
        if (herosBuilder_ == null) {
          return heros_.get(index);  } else {
          return herosBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
           getHerosOrBuilderList() {
        if (herosBuilder_ != null) {
          return herosBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heros_);
        }
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHerosBuilder() {
        return getHerosFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHerosBuilder(
          int index) {
        return getHerosFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *供选择的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heros = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder> 
           getHerosBuilderList() {
        return getHerosFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getHerosFieldBuilder() {
        if (herosBuilder_ == null) {
          herosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  heros_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          heros_ = null;
        }
        return herosBuilder_;
      }

      private int buildNu_ ;
      /**
       * <pre>
       *已经建造的栅栏数量最高为三个
       * </pre>
       *
       * <code>int32 build_nu = 4;</code>
       * @return The buildNu.
       */
      public int getBuildNu() {
        return buildNu_;
      }
      /**
       * <pre>
       *已经建造的栅栏数量最高为三个
       * </pre>
       *
       * <code>int32 build_nu = 4;</code>
       * @param value The buildNu to set.
       * @return This builder for chaining.
       */
      public Builder setBuildNu(int value) {
        
        buildNu_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已经建造的栅栏数量最高为三个
       * </pre>
       *
       * <code>int32 build_nu = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuildNu() {
        
        buildNu_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbVillageBattleResult)
    }

    // @@protoc_insertion_point(class_scope:pb.PbVillageBattleResult)
    private static final pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult();
    }

    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *波
     * </pre>
     *
     * <code>int32 stage = 1;</code>
     * @return The stage.
     */
    int getStage();
  }
  /**
   * Protobuf type {@code pb.PbVillageBattleParam}
   */
  public  static final class PbVillageBattleParam extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbVillageBattleParam)
      PbVillageBattleParamOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbVillageBattleParam.newBuilder() to construct.
    private PbVillageBattleParam(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbVillageBattleParam() {
    }

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleParam_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.class, pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.Builder.class);
    }

    public static final int STAGE_FIELD_NUMBER = 1;
    private int stage_;
    /**
     * <pre>
     *波
     * </pre>
     *
     * <code>int32 stage = 1;</code>
     * @return The stage.
     */
    public int getStage() {
      return stage_;
    }

    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 (stage_ != 0) {
        output.writeInt32(1, stage_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (stage_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, stage_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getStage()
          != other.getStage()) 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) + STAGE_FIELD_NUMBER;
      hash = (53 * hash) + getStage();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbVillageBattleParam}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbVillageBattleParam)
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleParam_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleParam_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.class, pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.village.Village.internal_static_pb_PbVillageBattleParam_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam buildPartial() {
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam result = new pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam(this);
        result.stage_ = stage_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam) {
          return mergeFrom((pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam other) {
        if (other == pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam.getDefaultInstance()) return this;
        if (other.getStage() != 0) {
          setStage(other.getStage());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int stage_ ;
      /**
       * <pre>
       *波
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @return The stage.
       */
      public int getStage() {
        return stage_;
      }
      /**
       * <pre>
       *波
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @param value The stage to set.
       * @return This builder for chaining.
       */
      public Builder setStage(int value) {
        
        stage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *波
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStage() {
        
        stage_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbVillageBattleParam)
    }

    // @@protoc_insertion_point(class_scope:pb.PbVillageBattleParam)
    private static final pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam();
    }

    public static pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.village.Village.PbVillageBattleParam getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageSweepRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageSweepRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageSweepResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageSweepResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageConfirmHeroRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageConfirmHeroRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageConfirmHeroResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageConfirmHeroResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageBuildRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageBuildRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_VillageBuildResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_VillageBuildResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbVillageBattleResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbVillageBattleResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbVillageBattleParam_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbVillageBattleParam_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\rVillage.proto\022\002pb\032\020MiniStruct.proto\032\nH" +
      "ero.proto\032\014Battle.proto\"s\n\023VillageInfoRe" +
      "sponse\022\r\n\005level\030\001 \001(\005\022\023\n\013today_times\030\002 \001" +
      "(\005\022\027\n\017next_reset_time\030\003 \001(\003\"\037\n\005Proto\022\013\n\007" +
      "UNKNOWN\020\000\022\t\n\002ID\020\341\345\244\001\"E\n\023VillageSweepRequ" +
      "est\022\r\n\005level\030\001 \001(\005\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000" +
      "\022\t\n\002ID\020\342\345\244\001\"7\n\024VillageSweepResponse\"\037\n\005P" +
      "roto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\342\345\244\001\"M\n\031VillageC" +
      "onfirmHeroRequest\022\017\n\007hero_id\030\001 \001(\005\"\037\n\005Pr" +
      "oto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\343\345\244\001\"l\n\032VillageCo" +
      "nfirmHeroResponse\022\017\n\007hero_id\030\001 \001(\005\022\034\n\006sp" +
      "rite\030\002 \001(\0132\014.pb.PbSprite\"\037\n\005Proto\022\013\n\007UNK" +
      "NOWN\020\000\022\t\n\002ID\020\343\345\244\001\"6\n\023VillageBuildRequest" +
      "\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\344\345\244\001\"J\n\024Vil" +
      "lageBuildResponse\022\021\n\tbuild_num\030\001 \001(\005\"\037\n\005" +
      "Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\344\345\244\001\"q\n\025PbVilla" +
      "geBattleResult\022\r\n\005level\030\001 \001(\005\022\034\n\007rewards" +
      "\030\002 \003(\0132\013.pb.PbThing\022\031\n\005heros\030\003 \003(\0132\n.pb." +
      "PbHero\022\020\n\010build_nu\030\004 \001(\005\"%\n\024PbVillageBat" +
      "tleParam\022\r\n\005stage\030\001 \001(\005B7\n\035pb.xiugou.x1." +
      "protobuf.village\252\002\025pb.xiugou.x1.protobuf" +
      "b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor(),
          pb.xiugou.x1.protobuf.hero.Hero.getDescriptor(),
          pb.xiugou.x1.protobuf.battle.Battle.getDescriptor(),
        });
    internal_static_pb_VillageInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_VillageInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageInfoResponse_descriptor,
        new java.lang.String[] { "Level", "TodayTimes", "NextResetTime", });
    internal_static_pb_VillageSweepRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_VillageSweepRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageSweepRequest_descriptor,
        new java.lang.String[] { "Level", });
    internal_static_pb_VillageSweepResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_VillageSweepResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageSweepResponse_descriptor,
        new java.lang.String[] { });
    internal_static_pb_VillageConfirmHeroRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_VillageConfirmHeroRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageConfirmHeroRequest_descriptor,
        new java.lang.String[] { "HeroId", });
    internal_static_pb_VillageConfirmHeroResponse_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_VillageConfirmHeroResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageConfirmHeroResponse_descriptor,
        new java.lang.String[] { "HeroId", "Sprite", });
    internal_static_pb_VillageBuildRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_VillageBuildRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageBuildRequest_descriptor,
        new java.lang.String[] { });
    internal_static_pb_VillageBuildResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_pb_VillageBuildResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_VillageBuildResponse_descriptor,
        new java.lang.String[] { "BuildNum", });
    internal_static_pb_PbVillageBattleResult_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_pb_PbVillageBattleResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbVillageBattleResult_descriptor,
        new java.lang.String[] { "Level", "Rewards", "Heros", "BuildNu", });
    internal_static_pb_PbVillageBattleParam_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_pb_PbVillageBattleParam_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbVillageBattleParam_descriptor,
        new java.lang.String[] { "Stage", });
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor();
    pb.xiugou.x1.protobuf.hero.Hero.getDescriptor();
    pb.xiugou.x1.protobuf.battle.Battle.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
