-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
In mod.flatcoloredblocks.core.recipe.WoolCarpetRecipeSerializer in the method matches you incorrectly assume that the given inventory always has a width > 0. This can lead to a call to getColor trying to access slot 0 if the first row, which causes an ArrayOutOfBounds exception with certain inventories:
[13Nov2025 14:49:48.884] [Server thread/ERROR] [net.minecraft.network.protocol.game.ServerPacketListener/]: Failed to handle packet net.minecraft.network.protocol.game.ServerboundContainerClickPacket@56996192, suppressing error
net.minecraft.ReportedException: Container click
at TRANSFORMER/[email protected]/net.minecraft.world.inventory.AbstractContainerMenu.clicked(AbstractContainerMenu.java:296) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/org.cyclops.cyclopscore.inventory.container.ContainerExtended.clicked(ContainerExtended.java:378) ~[cyclopscore-1.21.1-neoforge-1.27.1-835.jar%23788!/:1.27.1-835]
at TRANSFORMER/[email protected]/net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:1673) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:71) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:14) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:27) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.TickTask.run(TickTask.java:18) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:872) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:170) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:855) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:849) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:825) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:712) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/java.util.ImmutableCollections$ListN.get(ImmutableCollections.java:687) ~[?:?]
at TRANSFORMER/[email protected]/net.minecraft.world.item.crafting.CraftingInput.getItem(CraftingInput.java:86) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/mod.flatcoloredblocks.core.recipe.WoolCarpetRecipeSerializer$WoolCarpetRecipe.getColor(WoolCarpetRecipeSerializer.java:121) ~[flatcoloredblocks-core-21.1.16.jar%231417!/:21.1.16]
at TRANSFORMER/[email protected]/mod.flatcoloredblocks.core.recipe.WoolCarpetRecipeSerializer$WoolCarpetRecipe.assemble(WoolCarpetRecipeSerializer.java:99) ~[flatcoloredblocks-core-21.1.16.jar%231417!/:21.1.16]
at TRANSFORMER/[email protected]/mod.flatcoloredblocks.core.recipe.WoolCarpetRecipeSerializer$WoolCarpetRecipe.assemble(WoolCarpetRecipeSerializer.java:51) ~[flatcoloredblocks-core-21.1.16.jar%231417!/:21.1.16]
at TRANSFORMER/[email protected]/org.cyclops.integratedterminals.core.terminalstorage.TerminalStorageTabIngredientComponentItemStackCraftingCommon.updateCraftingResult(TerminalStorageTabIngredientComponentItemStackCraftingCommon.java:152) ~[integratedterminals-1.21.1-neoforge-1.6.17.jar%23891!/:1.6.17]
at TRANSFORMER/[email protected]/org.cyclops.integratedterminals.core.terminalstorage.TerminalStorageTabIngredientComponentItemStackCraftingCommon.lambda$loadSlots$0(TerminalStorageTabIngredientComponentItemStackCraftingCommon.java:68) ~[integratedterminals-1.21.1-neoforge-1.6.17.jar%23891!/:1.6.17]
at TRANSFORMER/[email protected]/org.cyclops.integratedterminals.inventory.InventoryCraftingDirtyable.setChanged(InventoryCraftingDirtyable.java:40) ~[integratedterminals-1.21.1-neoforge-1.6.17.jar%23891!/:1.6.17]
at TRANSFORMER/[email protected]/org.cyclops.integratedterminals.inventory.InventoryCraftingDirtyable.removeItem(InventoryCraftingDirtyable.java:26) ~[integratedterminals-1.21.1-neoforge-1.6.17.jar%23891!/:1.6.17]
at TRANSFORMER/[email protected]/net.minecraft.world.inventory.Slot.remove(Slot.java:88) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.world.inventory.Slot.tryRemove(Slot.java:138) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.world.inventory.AbstractContainerMenu.doClick(AbstractContainerMenu.java:412) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
at TRANSFORMER/[email protected]/net.minecraft.world.inventory.AbstractContainerMenu.clicked(AbstractContainerMenu.java:286) ~[client-1.21.1-20240808.144430-srg.jar%23648!/:?]
... 18 more
The mod should properly check inventory size here and abort if it is 0.
Metadata
Metadata
Assignees
Labels
No labels