ConfigEntry.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package me.lortseam.completeconfig.api;
  2. import lombok.AccessLevel;
  3. import lombok.NoArgsConstructor;
  4. import java.lang.annotation.ElementType;
  5. import java.lang.annotation.Retention;
  6. import java.lang.annotation.RetentionPolicy;
  7. import java.lang.annotation.Target;
  8. @Target(ElementType.FIELD)
  9. @Retention(RetentionPolicy.RUNTIME)
  10. public @interface ConfigEntry {
  11. String customTranslationKey() default "";
  12. String[] customTooltipKeys() default {};
  13. boolean forceUpdate() default false;
  14. @NoArgsConstructor(access = AccessLevel.PRIVATE)
  15. class Bounded {
  16. @Target(ElementType.FIELD)
  17. @Retention(RetentionPolicy.RUNTIME)
  18. public @interface Integer {
  19. int min() default java.lang.Integer.MIN_VALUE;
  20. int max() default java.lang.Integer.MAX_VALUE;
  21. }
  22. @Target(ElementType.FIELD)
  23. @Retention(RetentionPolicy.RUNTIME)
  24. public @interface Long {
  25. long min() default java.lang.Long.MIN_VALUE;
  26. long max() default java.lang.Long.MAX_VALUE;
  27. }
  28. @Target(ElementType.FIELD)
  29. @Retention(RetentionPolicy.RUNTIME)
  30. public @interface Float {
  31. float min() default -java.lang.Float.MAX_VALUE;
  32. float max() default java.lang.Float.MAX_VALUE;
  33. }
  34. @Target(ElementType.FIELD)
  35. @Retention(RetentionPolicy.RUNTIME)
  36. public @interface Double {
  37. double min() default -java.lang.Double.MAX_VALUE;
  38. double max() default java.lang.Double.MAX_VALUE;
  39. }
  40. }
  41. @Target(ElementType.FIELD)
  42. @Retention(RetentionPolicy.RUNTIME)
  43. @interface Ignore {
  44. }
  45. }