diff options
Diffstat (limited to 'common/src/main/java/dev/isxander/yacl3/gui/controllers')
-rw-r--r-- | common/src/main/java/dev/isxander/yacl3/gui/controllers/dropdown/AbstractDropdownController.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/common/src/main/java/dev/isxander/yacl3/gui/controllers/dropdown/AbstractDropdownController.java b/common/src/main/java/dev/isxander/yacl3/gui/controllers/dropdown/AbstractDropdownController.java index 8251f9e..b4e4304 100644 --- a/common/src/main/java/dev/isxander/yacl3/gui/controllers/dropdown/AbstractDropdownController.java +++ b/common/src/main/java/dev/isxander/yacl3/gui/controllers/dropdown/AbstractDropdownController.java @@ -65,11 +65,14 @@ public abstract class AbstractDropdownController<T> implements IStringController protected String getValidValue(String value, int offset) { if (offset == -1) return getString(); + String valueLowerCase = value.toLowerCase(); return getAllowedValues(value).stream() - .filter(val -> val.toLowerCase().contains(value.toLowerCase())) + .filter(val -> val.toLowerCase().contains(valueLowerCase)) .sorted((s1, s2) -> { - if (s1.startsWith(value) && !s2.startsWith(value)) return -1; - if (!s1.startsWith(value) && s2.startsWith(value)) return 1; + String s1LowerCase = s1.toLowerCase(); + String s2LowerCase = s2.toLowerCase(); + if (s1LowerCase.startsWith(valueLowerCase) && !s2LowerCase.startsWith(valueLowerCase)) return -1; + if (!s1LowerCase.startsWith(valueLowerCase) && s2LowerCase.startsWith(valueLowerCase)) return 1; return s1.compareTo(s2); }) .skip(offset) |