From cf3a278a10f365b5fec41866664996223306d090 Mon Sep 17 00:00:00 2001 From: HypherionSA Date: Sun, 19 Mar 2023 15:54:49 +0200 Subject: [PATCH] Properly fix CreativeTab item registering --- .../systems/internal/CreativeTabRegistry.java | 4 +++- .../craterlib/CraterLibInitializer.java | 15 +++++---------- .../craterlib/common/ForgeCommonEvents.java | 2 +- gradle.properties | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java b/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java index 31b301e..c3db7d6 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java @@ -16,7 +16,9 @@ public class CreativeTabRegistry { private static final List>> TAB_ITEMS = new ArrayList<>(); public static void setCreativeTab(CraterCreativeModeTab tab, Supplier item) { - TAB_ITEMS.add(Pair.of(tab, item)); + if (item != null) { + TAB_ITEMS.add(Pair.of(tab, item)); + } } public static void registerTab(CraterCreativeModeTab tab) { diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java index 878d36a..85508e3 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java @@ -23,20 +23,15 @@ public class CraterLibInitializer implements ModInitializer { .title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", ".") )) - .displayItems((featureFlagSet, output) -> { - CreativeTabRegistry - .getTabItems() - .stream().filter(t -> t.getLeft() == tab) - .map(Pair::getRight).forEach(itm -> output.accept(itm.get())); - }) .icon(tab.getIcon()) .build(); tab.setTab(finalTab); - }); - ItemGroupEvents.MODIFY_ENTRIES_ALL.register((group, entries) -> CreativeTabRegistry.getTabItems().stream() - .filter(p -> p.getLeft().get() == group) - .forEach(itemPair -> entries.accept(itemPair.getRight().get()))); + ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry + .getTabItems() + .stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null) + .map(Pair::getRight).forEach(itm -> entries.accept(itm.get()))); + }); } } diff --git a/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java index ba6e6c9..5cbd075 100644 --- a/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java +++ b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java @@ -38,7 +38,7 @@ public class ForgeCommonEvents { CreativeModeTab tab = event.getTab(); CreativeTabRegistry.getTabItems().stream() - .filter(p -> p.getLeft().get() == tab) + .filter(p -> p.getLeft().get() == tab && p.getRight() != null) .forEach(itemPair -> event.accept(itemPair.getRight())); } diff --git a/gradle.properties b/gradle.properties index 338dc94..ddf3dab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Project version_major=0 version_minor=0 -version_patch=1d +version_patch=5d group=me.hypherionmc.craterlib # Common