BeansGalaxy / Beans-Backpacks-2

1.20 inventory management mod. Designed to solve inventory clutter and transferring items while belonging in vanilla Minecraft's aesthetic.
MIT License
21 stars 1 forks source link

JEI Tooltips breaks while Beans Backpacks is installed #104

Closed DragonRatTiger closed 2 months ago

DragonRatTiger commented 4 months ago

Issue also mentioned on #85 , but was closed for some reason.

Currently running on Version 20.1-0.20-v2 (Forge 1.20.1), running alongside JEI Version 15.3.0.4 for Forge 1.20.1 (Modpack was built using Modrinth)

[25Mar2024 19:36:16.672] [Render thread/INFO] [mezz.jei.gui.ingredients.IngredientFilter/]: Adding 4832 ingredients
[25Mar2024 19:36:16.686] [Render thread/ERROR] [mezz.jei.common.util.SafeIngredientUtil/]: Caught an error rendering an Ingredient's tooltip:

-- Ingredient --
Details:
    Name: Oak Log
    Mod's Name: Minecraft
    Registry Name: minecraft:oak_log
    Class Name: class net.minecraft.world.item.ItemStack
    toString Name: 1 oak_log
    Unique Id for JEI (for JEI Blacklist): minecraft:oak_log
    Ingredient Type for JEI: class net.minecraft.world.item.ItemStack
    Error Info gathered from JEI: 1 oak_log minecraft:oak_log

-- Stack Trace --

java.lang.NullPointerException: Cannot invoke "top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler.getStacks()" because the return value of "java.util.Map.get(Object)" is null
    at TRANSFORMER/beansbackpacks@0.20-v2/com.beansgalaxy.backpacks.compat.CurioRegistry.getBackStackItem(CurioRegistry.java:40)
    at TRANSFORMER/beansbackpacks@0.20-v2/com.beansgalaxy.backpacks.platform.ForgeCompatHelper.getBackSlotItem(ForgeCompatHelper.java:35)
    at TRANSFORMER/beansbackpacks@0.20-v2/com.beansgalaxy.backpacks.data.BackData.getStack(BackData.java:101)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.item.ItemStack.handler$bfe000$redirectBackpackTooltip(ItemStack.java:1118)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.item.ItemStack.m_41651_(ItemStack.java:621)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.render.ItemStackRenderer.getTooltip(ItemStackRenderer.java:36)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.render.ItemStackRenderer.getTooltip(ItemStackRenderer.java:18)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.common.util.SafeIngredientUtil.getTooltip(SafeIngredientUtil.java:56)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientInformationUtil.getTooltipStrings(IngredientInformationUtil.java:31)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.ListElementInfo.getTooltipStrings(ListElementInfo.java:110)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.search.ElementPrefixParser.lambda$new$2(ElementPrefixParser.java:41)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.core.search.PrefixInfo.getStrings(PrefixInfo.java:35)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.core.search.PrefixedSearchable.getStrings(PrefixedSearchable.java:20)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.search.ElementSearch.add(ElementSearch.java:62)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientFilter.addIngredient(IngredientFilter.java:102)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
    at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
    at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientFilter.<init>(IngredientFilter.java:89)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.startup.JeiGuiStarter.start(JeiGuiStarter.java:108)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.plugins.forge.ForgeGuiPlugin.registerRuntime(ForgeGuiPlugin.java:34)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.startup.JeiStarter.lambda$start$2(JeiStarter.java:156)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.load.PluginCaller.callOnPlugins(PluginCaller.java:27)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.startup.JeiStarter.start(JeiStarter.java:156)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.startup.StartEventObserver.transitionState(StartEventObserver.java:137)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.startup.StartEventObserver.onEvent(StartEventObserver.java:100)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:260)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:252)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:315)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:296)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.multiplayer.ClientPacketListener.m_5859_(ClientPacketListener.java:1451)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.game.ClientboundUpdateTagsPacket.m_5797_(ClientboundUpdateTagsPacket.java:35)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.game.ClientboundUpdateTagsPacket.m_5797_(ClientboundUpdateTagsPacket.java:11)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.PacketUtils.m_263899_(PacketUtils.java:22)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:156)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:130)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_18699_(BlockableEventLoop.java:115)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1106)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.main(Main.java:218)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
    at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)

Love this mod, by the way. Really looking forward to seeing this in a more stable build.

BeansGalaxy commented 4 months ago

A lot of changes are coming to the backpack tooltips in the next update and it looks like this problem worked itself out since I can't replicate it. This mod is very close to it's full release so I'm making a lot of sweeping changes to the code while it might not look like anything's changed. Probably just knocked something loose in the last update that broke jei.

Thanks for your support! Keep an eye out for update 20.1-0.21-v2

BeansGalaxy commented 4 months ago

Fixed in 20.1-0.22-v2!

DragonRatTiger commented 3 months ago

Hi! Finally got around to trying out this specific update, but it doesn't appear to be fixed for me. It returns the same error as before. Also tried on 20.1-0.24-v2, same error.


[15Apr2024 22:30:46.237] [Render thread/INFO] [mezz.jei.gui.ingredients.IngredientFilter/]: Adding 4668 ingredients
[15Apr2024 22:30:46.253] [Render thread/ERROR] [mezz.jei.common.util.SafeIngredientUtil/]: Caught an error rendering an Ingredient's tooltip:

-- Ingredient --
Details:
    Name: Oak Log
    Mod's Name: Minecraft
    Registry Name: minecraft:oak_log
    Class Name: class net.minecraft.world.item.ItemStack
    toString Name: 1 oak_log
    Unique Id for JEI (for JEI Blacklist): minecraft:oak_log
    Ingredient Type for JEI: class net.minecraft.world.item.ItemStack
    Error Info gathered from JEI: 1 oak_log minecraft:oak_log

-- Stack Trace --

java.lang.NullPointerException: Cannot invoke "top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler.getStacks()" because the return value of "java.util.Map.get(Object)" is null
    at TRANSFORMER/beansbackpacks@0.22-v2/com.beansgalaxy.backpacks.compat.CurioRegistry.getBackStackItem(CurioRegistry.java:40)
    at TRANSFORMER/beansbackpacks@0.22-v2/com.beansgalaxy.backpacks.platform.ForgeCompatHelper.getBackSlotItem(ForgeCompatHelper.java:33)
    at TRANSFORMER/beansbackpacks@0.22-v2/com.beansgalaxy.backpacks.data.BackData.getStack(BackData.java:111)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.item.ItemStack.handler$zip000$redirectBackpackTooltip(ItemStack.java:1109)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.item.ItemStack.m_41651_(ItemStack.java:621)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.render.ItemStackRenderer.getTooltip(ItemStackRenderer.java:36)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.render.ItemStackRenderer.getTooltip(ItemStackRenderer.java:18)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.common.util.SafeIngredientUtil.getTooltip(SafeIngredientUtil.java:56)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientInformationUtil.getTooltipStrings(IngredientInformationUtil.java:31)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.ListElementInfo.getTooltipStrings(ListElementInfo.java:110)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.search.ElementPrefixParser.lambda$new$2(ElementPrefixParser.java:41)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.core.search.PrefixInfo.getStrings(PrefixInfo.java:35)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.core.search.PrefixedSearchable.getStrings(PrefixedSearchable.java:20)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.search.ElementSearch.add(ElementSearch.java:62)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientFilter.addIngredient(IngredientFilter.java:102)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
    at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
    at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.ingredients.IngredientFilter.<init>(IngredientFilter.java:89)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.gui.startup.JeiGuiStarter.start(JeiGuiStarter.java:108)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.plugins.forge.ForgeGuiPlugin.registerRuntime(ForgeGuiPlugin.java:34)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.startup.JeiStarter.lambda$start$2(JeiStarter.java:156)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.load.PluginCaller.callOnPlugins(PluginCaller.java:27)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.library.startup.JeiStarter.start(JeiStarter.java:156)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.startup.StartEventObserver.transitionState(StartEventObserver.java:137)
    at TRANSFORMER/jei@15.3.0.4/mezz.jei.forge.startup.StartEventObserver.onEvent(StartEventObserver.java:100)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:260)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:252)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:315)
    at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:296)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.multiplayer.ClientPacketListener.m_5859_(ClientPacketListener.java:1451)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.game.ClientboundUpdateTagsPacket.m_5797_(ClientboundUpdateTagsPacket.java:35)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.game.ClientboundUpdateTagsPacket.m_5797_(ClientboundUpdateTagsPacket.java:11)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.network.protocol.PacketUtils.m_263899_(PacketUtils.java:22)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:156)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:130)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_18699_(BlockableEventLoop.java:115)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1106)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718)
    at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.main(Main.java:218)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99)
    at MC-BOOTSTRAP/fmlloader@1.20.1-47.2.17/net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
    at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
    at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
VitaminJake commented 2 months ago

Use REI instead, JEI has tooltip errors with most backpack mods (including Inmis/Inmis addon) edit: never mind, just saw you're running forge edit to the edit: REI is now on Forge, run REI, it's better in every way

BeansGalaxy commented 2 months ago

Double, tripple checked this bug and I can't seem to replicate this anymore. Tried this with curios & jei installed and it seems to be fixed so I'm closing this issue.