From 04fe933f4c24817100f3101f088accf55a621f8a Mon Sep 17 00:00:00 2001 From: isxander Date: Thu, 11 Apr 2024 18:43:06 +0100 Subject: Extremely fragile and broken multiversion build with stonecutter --- .../yacl3/api/controller/BooleanControllerBuilder.java | 16 ++++++++++++++++ .../yacl3/api/controller/ColorControllerBuilder.java | 14 ++++++++++++++ .../yacl3/api/controller/ControllerBuilder.java | 10 ++++++++++ .../api/controller/CyclingListControllerBuilder.java | 15 +++++++++++++++ .../api/controller/DoubleFieldControllerBuilder.java | 10 ++++++++++ .../api/controller/DoubleSliderControllerBuilder.java | 10 ++++++++++ .../controller/DropdownStringControllerBuilder.java | 18 ++++++++++++++++++ .../yacl3/api/controller/EnumControllerBuilder.java | 12 ++++++++++++ .../api/controller/EnumDropdownControllerBuilder.java | 10 ++++++++++ .../api/controller/FloatFieldControllerBuilder.java | 10 ++++++++++ .../api/controller/FloatSliderControllerBuilder.java | 10 ++++++++++ .../api/controller/IntegerFieldControllerBuilder.java | 10 ++++++++++ .../api/controller/IntegerSliderControllerBuilder.java | 10 ++++++++++ .../yacl3/api/controller/ItemControllerBuilder.java | 11 +++++++++++ .../api/controller/LongFieldControllerBuilder.java | 10 ++++++++++ .../api/controller/LongSliderControllerBuilder.java | 10 ++++++++++ .../api/controller/NumberFieldControllerBuilder.java | 7 +++++++ .../yacl3/api/controller/SliderControllerBuilder.java | 6 ++++++ .../yacl3/api/controller/StringControllerBuilder.java | 10 ++++++++++ .../yacl3/api/controller/TickBoxControllerBuilder.java | 10 ++++++++++ .../api/controller/ValueFormattableController.java | 14 ++++++++++++++ .../isxander/yacl3/api/controller/ValueFormatter.java | 7 +++++++ 22 files changed, 240 insertions(+) create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/BooleanControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/ColorControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/ControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/CyclingListControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/DoubleFieldControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/DoubleSliderControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/DropdownStringControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/EnumControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/EnumDropdownControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/FloatFieldControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/FloatSliderControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/IntegerFieldControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/IntegerSliderControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/ItemControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/LongFieldControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/LongSliderControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/NumberFieldControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/SliderControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/StringControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/TickBoxControllerBuilder.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/ValueFormattableController.java create mode 100644 src/main/java/dev/isxander/yacl3/api/controller/ValueFormatter.java (limited to 'src/main/java/dev/isxander/yacl3/api/controller') diff --git a/src/main/java/dev/isxander/yacl3/api/controller/BooleanControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/BooleanControllerBuilder.java new file mode 100644 index 0000000..88f9a77 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/BooleanControllerBuilder.java @@ -0,0 +1,16 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.BooleanControllerBuilderImpl; + +public interface BooleanControllerBuilder extends ValueFormattableController { + BooleanControllerBuilder coloured(boolean coloured); + + BooleanControllerBuilder onOffFormatter(); + BooleanControllerBuilder yesNoFormatter(); + BooleanControllerBuilder trueFalseFormatter(); + + static BooleanControllerBuilder create(Option option) { + return new BooleanControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/ColorControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/ColorControllerBuilder.java new file mode 100644 index 0000000..8e442ff --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/ColorControllerBuilder.java @@ -0,0 +1,14 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.ColorControllerBuilderImpl; + +import java.awt.Color; + +public interface ColorControllerBuilder extends ControllerBuilder { + ColorControllerBuilder allowAlpha(boolean allowAlpha); + + static ColorControllerBuilder create(Option option) { + return new ColorControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/ControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/ControllerBuilder.java new file mode 100644 index 0000000..bbd49a7 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/ControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Controller; +import org.jetbrains.annotations.ApiStatus; + +@FunctionalInterface +public interface ControllerBuilder { + @ApiStatus.Internal + Controller build(); +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/CyclingListControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/CyclingListControllerBuilder.java new file mode 100644 index 0000000..8c9ea91 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/CyclingListControllerBuilder.java @@ -0,0 +1,15 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.CyclingListControllerBuilderImpl; + +public interface CyclingListControllerBuilder extends ValueFormattableController> { + @SuppressWarnings("unchecked") + CyclingListControllerBuilder values(T... values); + + CyclingListControllerBuilder values(Iterable values); + + static CyclingListControllerBuilder create(Option option) { + return new CyclingListControllerBuilderImpl<>(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/DoubleFieldControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/DoubleFieldControllerBuilder.java new file mode 100644 index 0000000..db4af94 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/DoubleFieldControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.DoubleFieldControllerBuilderImpl; + +public interface DoubleFieldControllerBuilder extends NumberFieldControllerBuilder { + static DoubleFieldControllerBuilder create(Option option) { + return new DoubleFieldControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/DoubleSliderControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/DoubleSliderControllerBuilder.java new file mode 100644 index 0000000..7e4b6f9 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/DoubleSliderControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.DoubleSliderControllerBuilderImpl; + +public interface DoubleSliderControllerBuilder extends SliderControllerBuilder { + static DoubleSliderControllerBuilder create(Option option) { + return new DoubleSliderControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/DropdownStringControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/DropdownStringControllerBuilder.java new file mode 100644 index 0000000..3f5fb33 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/DropdownStringControllerBuilder.java @@ -0,0 +1,18 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.DropdownStringControllerBuilderImpl; + +import java.util.List; + +public interface DropdownStringControllerBuilder extends StringControllerBuilder { + DropdownStringControllerBuilder values(List values); + DropdownStringControllerBuilder values(String... values); + DropdownStringControllerBuilder allowEmptyValue(boolean allowEmptyValue); + DropdownStringControllerBuilder allowAnyValue(boolean allowAnyValue); + + + static DropdownStringControllerBuilder create(Option option) { + return new DropdownStringControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/EnumControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/EnumControllerBuilder.java new file mode 100644 index 0000000..decb8f9 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/EnumControllerBuilder.java @@ -0,0 +1,12 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.EnumControllerBuilderImpl; + +public interface EnumControllerBuilder> extends ValueFormattableController> { + EnumControllerBuilder enumClass(Class enumClass); + + static > EnumControllerBuilder create(Option option) { + return new EnumControllerBuilderImpl<>(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/EnumDropdownControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/EnumDropdownControllerBuilder.java new file mode 100644 index 0000000..0814cc6 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/EnumDropdownControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.EnumDropdownControllerBuilderImpl; + +public interface EnumDropdownControllerBuilder> extends ValueFormattableController> { + static > EnumDropdownControllerBuilder create(Option option) { + return new EnumDropdownControllerBuilderImpl<>(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/FloatFieldControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/FloatFieldControllerBuilder.java new file mode 100644 index 0000000..de81837 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/FloatFieldControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.FloatFieldControllerBuilderImpl; + +public interface FloatFieldControllerBuilder extends NumberFieldControllerBuilder { + static FloatFieldControllerBuilder create(Option option) { + return new FloatFieldControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/FloatSliderControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/FloatSliderControllerBuilder.java new file mode 100644 index 0000000..2a04dde --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/FloatSliderControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.FloatSliderControllerBuilderImpl; + +public interface FloatSliderControllerBuilder extends SliderControllerBuilder { + static FloatSliderControllerBuilder create(Option option) { + return new FloatSliderControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/IntegerFieldControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/IntegerFieldControllerBuilder.java new file mode 100644 index 0000000..1e31fac --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/IntegerFieldControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.IntegerFieldControllerBuilderImpl; + +public interface IntegerFieldControllerBuilder extends NumberFieldControllerBuilder { + static IntegerFieldControllerBuilder create(Option option) { + return new IntegerFieldControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/IntegerSliderControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/IntegerSliderControllerBuilder.java new file mode 100644 index 0000000..11e089a --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/IntegerSliderControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.IntegerSliderControllerBuilderImpl; + +public interface IntegerSliderControllerBuilder extends SliderControllerBuilder { + static IntegerSliderControllerBuilder create(Option option) { + return new IntegerSliderControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/ItemControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/ItemControllerBuilder.java new file mode 100644 index 0000000..5a1f5fa --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/ItemControllerBuilder.java @@ -0,0 +1,11 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.ItemControllerBuilderImpl; +import net.minecraft.world.item.Item; + +public interface ItemControllerBuilder extends ControllerBuilder { + static ItemControllerBuilder create(Option option) { + return new ItemControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/LongFieldControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/LongFieldControllerBuilder.java new file mode 100644 index 0000000..c53b464 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/LongFieldControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.LongFieldControllerBuilderImpl; + +public interface LongFieldControllerBuilder extends NumberFieldControllerBuilder { + static LongFieldControllerBuilder create(Option option) { + return new LongFieldControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/LongSliderControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/LongSliderControllerBuilder.java new file mode 100644 index 0000000..fc09423 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/LongSliderControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.LongSliderControllerBuilderImpl; + +public interface LongSliderControllerBuilder extends SliderControllerBuilder { + static LongSliderControllerBuilder create(Option option) { + return new LongSliderControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/NumberFieldControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/NumberFieldControllerBuilder.java new file mode 100644 index 0000000..b5cfa1f --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/NumberFieldControllerBuilder.java @@ -0,0 +1,7 @@ +package dev.isxander.yacl3.api.controller; + +public interface NumberFieldControllerBuilder> extends ValueFormattableController { + B min(T min); + B max(T max); + B range(T min, T max); +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/SliderControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/SliderControllerBuilder.java new file mode 100644 index 0000000..2fb3fec --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/SliderControllerBuilder.java @@ -0,0 +1,6 @@ +package dev.isxander.yacl3.api.controller; + +public interface SliderControllerBuilder> extends ValueFormattableController { + B range(T min, T max); + B step(T step); +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/StringControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/StringControllerBuilder.java new file mode 100644 index 0000000..5e2f8c6 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/StringControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.StringControllerBuilderImpl; + +public interface StringControllerBuilder extends ControllerBuilder { + static StringControllerBuilder create(Option option) { + return new StringControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/TickBoxControllerBuilder.java b/src/main/java/dev/isxander/yacl3/api/controller/TickBoxControllerBuilder.java new file mode 100644 index 0000000..71a2762 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/TickBoxControllerBuilder.java @@ -0,0 +1,10 @@ +package dev.isxander.yacl3.api.controller; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.impl.controller.TickBoxControllerBuilderImpl; + +public interface TickBoxControllerBuilder extends ControllerBuilder { + static TickBoxControllerBuilder create(Option option) { + return new TickBoxControllerBuilderImpl(option); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/ValueFormattableController.java b/src/main/java/dev/isxander/yacl3/api/controller/ValueFormattableController.java new file mode 100644 index 0000000..b886318 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/ValueFormattableController.java @@ -0,0 +1,14 @@ +package dev.isxander.yacl3.api.controller; + +import net.minecraft.network.chat.Component; + +import java.util.function.Function; + +public interface ValueFormattableController> extends ControllerBuilder { + B formatValue(ValueFormatter formatter); + + @Deprecated + default B valueFormatter(Function formatter) { + return formatValue(formatter::apply); + } +} diff --git a/src/main/java/dev/isxander/yacl3/api/controller/ValueFormatter.java b/src/main/java/dev/isxander/yacl3/api/controller/ValueFormatter.java new file mode 100644 index 0000000..aecaf65 --- /dev/null +++ b/src/main/java/dev/isxander/yacl3/api/controller/ValueFormatter.java @@ -0,0 +1,7 @@ +package dev.isxander.yacl3.api.controller; + +import net.minecraft.network.chat.Component; + +public interface ValueFormatter { + Component format(T value); +} -- cgit