diff --git a/src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java b/src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java index ca6a21b43..69ba6d819 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java +++ b/src/main/java/ru/dbotthepony/mc/otm/mixin/ItemMixin.java @@ -17,10 +17,14 @@ public abstract class ItemMixin { cancellable = true ) public void getItemCategory$hook(CallbackInfoReturnable info) { - if (MCreativeTabsKt.getMainTabContents().contains((Item) ((Object) this))) { - info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB); - } else if (MCreativeTabsKt.getDecorativeTabContents().contains((Item) ((Object) this))) { - info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE); + try { + if (MCreativeTabsKt.getMainTabContents().contains((Item) ((Object) this))) { + info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB); + } else if (MCreativeTabsKt.getDecorativeTabContents().contains((Item) ((Object) this))) { + info.setReturnValue(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE); + } + } catch(Throwable err) { + info.setReturnValue(CreativeModeTab.TAB_MISC); // fuck you shapedrecipebuilder } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt index 0a628f12b..ce5fa038c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt @@ -285,5 +285,6 @@ private fun addDecorativeTabItems(consumer: CreativeTabOutput) { } } -val MainTabContents = CreativeTabOutput().also { addMainCreativeTabItems(it) } -val DecorativeTabContents = CreativeTabOutput().also { addDecorativeTabItems(it) } +// lazy is to prevent "exception in initializer" and allow to re-initialize in future +val MainTabContents by lazy { CreativeTabOutput().also { addMainCreativeTabItems(it) } } +val DecorativeTabContents by lazy { CreativeTabOutput().also { addDecorativeTabItems(it) } }