From 9779f8eaada05003b6d76a8e5c6c8ce230854038 Mon Sep 17 00:00:00 2001 From: Paint_Ninja Date: Thu, 12 Sep 2024 14:06:08 +0100 Subject: [PATCH] Cleanup FML Bindings (backport of #10004 to 1.20.1) (#10094) --- .../java/net/minecraftforge/fml/Bindings.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/fmlcore/src/main/java/net/minecraftforge/fml/Bindings.java b/fmlcore/src/main/java/net/minecraftforge/fml/Bindings.java index 6a34cea208..52149f1a51 100644 --- a/fmlcore/src/main/java/net/minecraftforge/fml/Bindings.java +++ b/fmlcore/src/main/java/net/minecraftforge/fml/Bindings.java @@ -5,36 +5,39 @@ package net.minecraftforge.fml; -import cpw.mods.modlauncher.util.ServiceLoaderUtils; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.config.IConfigEvent; import net.minecraftforge.fml.loading.FMLLoader; +import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import java.util.function.Supplier; +/** + * Used to allow access to certain things from the game layer + */ public class Bindings { - private static final Bindings INSTANCE = new Bindings(); + private Bindings() {} - private final IBindingsProvider provider; - - private Bindings() { - final var providers = ServiceLoaderUtils.streamServiceLoader(()->ServiceLoader.load(FMLLoader.getGameLayer(), IBindingsProvider.class), sce->{}).toList(); - if (providers.size() != 1) { - throw new IllegalStateException("Could not find bindings provider"); - } - this.provider = providers.get(0); - } + /** + * The provider of the bindings + * @implNote May also throw a {@link ServiceConfigurationError} + */ + private static final IBindingsProvider PROVIDER = ServiceLoader.load(FMLLoader.getGameLayer(), IBindingsProvider.class) + .findFirst().orElseThrow(() -> new IllegalStateException("Could not find bindings provider")); + /** + * @return A supplier of net.minecraftforge.common.MinecraftForge#EVENT_BUS + */ public static Supplier getForgeBus() { - return INSTANCE.provider.getForgeBusSupplier(); + return PROVIDER.getForgeBusSupplier(); } public static Supplier getMessageParser() { - return INSTANCE.provider.getMessageParser(); + return PROVIDER.getMessageParser(); } public static Supplier getConfigConfiguration() { - return INSTANCE.provider.getConfigConfiguration(); + return PROVIDER.getConfigConfiguration(); } }