content: package net.minecraft.entity.ai.attributes;
  
  import net.minecraft.util.MathHelper;
  
  public class RangedAttribute extends BaseAttribute {
      private final double minimumValue;
      private final double maximumValue;
      private String description;
  
      public RangedAttribute(IAttribute p_i45891_1_, String unlocalizedNameIn, double defaultValue, double minimumValueIn, double maximumValueIn) {
          super(p_i45891_1_, unlocalizedNameIn, defaultValue);
          this.minimumValue = minimumValueIn;
          this.maximumValue = maximumValueIn;
  
          if (minimumValueIn > maximumValueIn) {
              throw new IllegalArgumentException("Minimum value cannot be bigger than maximum value!");
          } else if (defaultValue < minimumValueIn) {
              throw new IllegalArgumentException("Default value cannot be lower than minimum value!");
          } else if (defaultValue > maximumValueIn) {
              throw new IllegalArgumentException("Default value cannot be bigger than maximum value!");
          }
      }
  
      public RangedAttribute setDescription(String descriptionIn) {
          this.description = descriptionIn;
          return this;
      }
  
      public String getDescription() {
          return this.description;
      }
  
      public double clampValue(double p_111109_1_) {
          p_111109_1_ = MathHelper.clamp_double(p_111109_1_, this.minimumValue, this.maximumValue);
          return p_111109_1_;
      }
  }
  