Properly fix CreativeTab item registering
This commit is contained in:
@@ -16,7 +16,9 @@ public class CreativeTabRegistry {
|
|||||||
private static final List<Pair<CraterCreativeModeTab, Supplier<? extends ItemLike>>> TAB_ITEMS = new ArrayList<>();
|
private static final List<Pair<CraterCreativeModeTab, Supplier<? extends ItemLike>>> TAB_ITEMS = new ArrayList<>();
|
||||||
|
|
||||||
public static void setCreativeTab(CraterCreativeModeTab tab, Supplier<? extends ItemLike> item) {
|
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) {
|
public static void registerTab(CraterCreativeModeTab tab) {
|
||||||
|
@@ -23,20 +23,15 @@ public class CraterLibInitializer implements ModInitializer {
|
|||||||
.title(Component.translatable("itemGroup." +
|
.title(Component.translatable("itemGroup." +
|
||||||
tab.getResourceLocation().toString().replace(":", ".")
|
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())
|
.icon(tab.getIcon())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
tab.setTab(finalTab);
|
tab.setTab(finalTab);
|
||||||
});
|
|
||||||
|
|
||||||
ItemGroupEvents.MODIFY_ENTRIES_ALL.register((group, entries) -> CreativeTabRegistry.getTabItems().stream()
|
ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry
|
||||||
.filter(p -> p.getLeft().get() == group)
|
.getTabItems()
|
||||||
.forEach(itemPair -> entries.accept(itemPair.getRight().get())));
|
.stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null)
|
||||||
|
.map(Pair::getRight).forEach(itm -> entries.accept(itm.get())));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,7 @@ public class ForgeCommonEvents {
|
|||||||
CreativeModeTab tab = event.getTab();
|
CreativeModeTab tab = event.getTab();
|
||||||
|
|
||||||
CreativeTabRegistry.getTabItems().stream()
|
CreativeTabRegistry.getTabItems().stream()
|
||||||
.filter(p -> p.getLeft().get() == tab)
|
.filter(p -> p.getLeft().get() == tab && p.getRight() != null)
|
||||||
.forEach(itemPair -> event.accept(itemPair.getRight()));
|
.forEach(itemPair -> event.accept(itemPair.getRight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# Project
|
# Project
|
||||||
version_major=0
|
version_major=0
|
||||||
version_minor=0
|
version_minor=0
|
||||||
version_patch=1d
|
version_patch=5d
|
||||||
group=me.hypherionmc.craterlib
|
group=me.hypherionmc.craterlib
|
||||||
|
|
||||||
# Common
|
# Common
|
||||||
|
Reference in New Issue
Block a user