From 3820d1b66f38a56c08359b6c51fc33b457a4af76 Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 2 Sep 2020 21:15:16 -0700 Subject: [PATCH] Dirty casting hacks to fix eclipse compiler inference issue. I'm sorry cpw. --- src/main/java/net/minecraftforge/fml/ModLoadingStage.java | 4 ++-- src/main/java/net/minecraftforge/registries/GameData.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/ModLoadingStage.java b/src/main/java/net/minecraftforge/fml/ModLoadingStage.java index 0ac88395e..99ebb4fb1 100644 --- a/src/main/java/net/minecraftforge/fml/ModLoadingStage.java +++ b/src/main/java/net/minecraftforge/fml/ModLoadingStage.java @@ -50,7 +50,8 @@ public enum ModLoadingStage ERROR(), VALIDATE(), CONSTRUCT(FMLConstructModEvent.class), - CREATE_REGISTRIES(()->Stream.of(RegistryEvent.NewRegistry::new), EventDispatcher.identity()), + @SuppressWarnings({ "unchecked", "rawtypes" }) //Eclipse compiler generics issue. Sorry cpw, your nested generics can't be inferred + CREATE_REGISTRIES((Supplier)()->Stream.of((Function)RegistryEvent.NewRegistry::new), EventDispatcher.identity()), LOAD_REGISTRIES(GameData::generateRegistryEvents, GameData.buildRegistryEventDispatch()), COMMON_SETUP(FMLCommonSetupEvent.class), SIDED_SETUP(DistExecutor.unsafeRunForDist(()->()->FMLClientSetupEvent.class, ()->()->FMLDedicatedServerSetupEvent.class)), @@ -79,7 +80,6 @@ public enum ModLoadingStage }, e); } - @SuppressWarnings("unchecked") ModLoadingStage(Supplier>> eventStream, EventDispatcher eventManager) { this.eventFunctionStream = eventStream; this.parallelEventClass = Optional.empty(); diff --git a/src/main/java/net/minecraftforge/registries/GameData.java b/src/main/java/net/minecraftforge/registries/GameData.java index f32beb42e..df9276912 100644 --- a/src/main/java/net/minecraftforge/registries/GameData.java +++ b/src/main/java/net/minecraftforge/registries/GameData.java @@ -327,6 +327,7 @@ public class GameData LOGGER.debug(REGISTRIES, "Reverting complete"); } + @SuppressWarnings("rawtypes") //Eclipse compiler generics issue. public static Stream> generateRegistryEvents() { List keys = Lists.newArrayList(RegistryManager.ACTIVE.registries.keySet()); keys.sort((o1, o2) -> String.valueOf(o1).compareToIgnoreCase(String.valueOf(o2))); @@ -338,7 +339,7 @@ public class GameData keys.add(0, BLOCKS.func_240901_a_()); keys.add(1, ITEMS.func_240901_a_()); - return keys.stream().map(rl -> mc -> RegistryManager.ACTIVE.getRegistry(rl).getRegisterEvent(rl)); + return keys.stream().map(rl -> (ModLoadingStage.EventGenerator)(mc -> RegistryManager.ACTIVE.getRegistry(rl).getRegisterEvent(rl))); } public static ModLoadingStage.EventDispatcher> buildRegistryEventDispatch() {