Przeglądaj źródła

Slight GUI registry improvements

Lortseam 4 lat temu
rodzic
commit
0bfd80475b

+ 8 - 12
src/main/java/me/lortseam/completeconfig/gui/cloth/GuiRegistry.java

@@ -1,6 +1,5 @@
 package me.lortseam.completeconfig.gui.cloth;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.MoreCollectors;
 import com.google.common.reflect.TypeToken;
 import me.lortseam.completeconfig.data.BoundedEntry;
@@ -40,7 +39,7 @@ public final class GuiRegistry {
     }
 
     public void registerProvider(GuiProvider<?> provider, Predicate<Entry<?>> predicate, Type... types) {
-        registrations.add(new GuiProviderRegistration(predicate.and(entry -> {
+        registrations.add(0, new GuiProviderRegistration(predicate.and(entry -> {
             if (types.length == 0) {
                 return true;
             }
@@ -55,15 +54,15 @@ public final class GuiRegistry {
         registerProvider(provider, entry -> true, types);
     }
 
-    private void registerBoundedProvider(GuiProvider<? extends BoundedEntry<?>> provider, boolean slider, Type... types) {
+    public void registerBoundedProvider(GuiProvider<? extends BoundedEntry<?>> provider, boolean slider, Type... types) {
         registerProvider(provider, entry -> entry instanceof BoundedEntry && ((BoundedEntry<?>) entry).isSlider() == slider, types);
     }
 
-    private void registerEnumProvider(GuiProvider<? extends EnumEntry<?>> provider, EnumEntry.DisplayType enumDisplayType) {
+    public void registerEnumProvider(GuiProvider<? extends EnumEntry<?>> provider, EnumEntry.DisplayType enumDisplayType) {
         registerProvider(provider, entry -> entry instanceof EnumEntry && ((EnumEntry<?>) entry).getDisplayType() == enumDisplayType);
     }
 
-    private void registerColorProvider(GuiProvider<? extends ColorEntry<?>> provider, boolean alphaModeSupported, Type... types) {
+    public void registerColorProvider(GuiProvider<? extends ColorEntry<?>> provider, boolean alphaModeSupported, Type... types) {
         registerProvider(provider, entry -> entry instanceof ColorEntry<?> && (!((ColorEntry) entry).isAlphaMode() || alphaModeSupported), types);
     }
 
@@ -256,12 +255,9 @@ public final class GuiRegistry {
     }
 
     <E extends Entry<?>> Optional<GuiProvider<E>> getProvider(E entry) {
-        for (GuiProviderRegistration registration : Lists.reverse(registrations)) {
-            if (registration.test(entry)) {
-                return Optional.of((GuiProvider<E>) registration.getProvider());
-            }
-        }
-        return Optional.empty();
+        return registrations.stream().filter(registration -> registration.test(entry)).findFirst().map(registration -> {
+            return (GuiProvider<E>) registration.getProvider();
+        });
     }
 
-}
+}