Properly fix CreativeTab item registering

This commit is contained in:
2023-03-19 15:54:49 +02:00
parent 33cae59b20
commit cf3a278a10
4 changed files with 10 additions and 13 deletions

View File

@@ -16,7 +16,9 @@ public class CreativeTabRegistry {
private static final List<Pair<CraterCreativeModeTab, Supplier<? extends ItemLike>>> TAB_ITEMS = new ArrayList<>();
public static void setCreativeTab(CraterCreativeModeTab tab, Supplier<? extends ItemLike> item) {
TAB_ITEMS.add(Pair.of(tab, item));
if (item != null) {
TAB_ITEMS.add(Pair.of(tab, item));
}
}
public static void registerTab(CraterCreativeModeTab tab) {

View File

@@ -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())));
});
}
}

View File

@@ -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()));
}

View File

@@ -1,7 +1,7 @@
# Project
version_major=0
version_minor=0
version_patch=1d
version_patch=5d
group=me.hypherionmc.craterlib
# Common