From 144a37cebb346c7a106f7cb960caaf79a37e8048 Mon Sep 17 00:00:00 2001 From: slprime <31038811+slprime@users.noreply.github.com> Date: Fri, 7 Jan 2022 19:06:05 +0200 Subject: [PATCH] Fix crash with null fluid stack (#193) * fix crash with null fluid stack * change minimum stack size in bookmarks Co-authored-by: Serghei Borovetchi --- src/main/java/codechicken/nei/BookmarkPanel.java | 14 +++++--------- .../stackinfo/DefaultStackStringifyHandler.java | 10 ++++++++-- .../stackinfo/GTFluidStackStringifyHandler.java | 11 +++++++---- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/main/java/codechicken/nei/BookmarkPanel.java b/src/main/java/codechicken/nei/BookmarkPanel.java index 9e5d7afc..fc11ae64 100644 --- a/src/main/java/codechicken/nei/BookmarkPanel.java +++ b/src/main/java/codechicken/nei/BookmarkPanel.java @@ -281,15 +281,11 @@ public class BookmarkPanel extends ItemPanel for (PositionedStack stack : ingredients) { final NBTTagCompound nbTag = StackInfo.itemStackToNBT(stack.item, saveStackSize); - if (nbTag.getInteger("Count") > 0) { - - if (unique.get(nbTag) == null) { - unique.put(nbTag, 1); - sorted.add(nbTag); - } else if (saveStackSize) { - unique.put(nbTag, unique.get(nbTag) + 1); - } - + if (unique.get(nbTag) == null) { + unique.put(nbTag, 1); + sorted.add(nbTag); + } else if (saveStackSize) { + unique.put(nbTag, unique.get(nbTag) + 1); } } diff --git a/src/main/java/codechicken/nei/recipe/stackinfo/DefaultStackStringifyHandler.java b/src/main/java/codechicken/nei/recipe/stackinfo/DefaultStackStringifyHandler.java index 7ce23064..de1324ca 100644 --- a/src/main/java/codechicken/nei/recipe/stackinfo/DefaultStackStringifyHandler.java +++ b/src/main/java/codechicken/nei/recipe/stackinfo/DefaultStackStringifyHandler.java @@ -14,9 +14,15 @@ public class DefaultStackStringifyHandler implements IStackStringifyHandler public NBTTagCompound convertItemStackToNBT(ItemStack stack, boolean saveStackSize) { + final String strId = Item.itemRegistry.getNameForObject(stack.getItem()); + + if (strId == null) { + return null; + } + final NBTTagCompound nbTag = new NBTTagCompound(); - nbTag.setString("strId", Item.itemRegistry.getNameForObject(stack.getItem())); - nbTag.setInteger("Count", saveStackSize? stack.stackSize: 1); + nbTag.setString("strId", strId); + nbTag.setInteger("Count", Math.max(saveStackSize? stack.stackSize: 1, 1)); nbTag.setShort("Damage", (short)stack.getItemDamage()); if (stack.hasTagCompound()) { diff --git a/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java b/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java index e3cceb47..4aec9e13 100644 --- a/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java +++ b/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java @@ -31,12 +31,15 @@ public class GTFluidStackStringifyHandler implements IStackStringifyHandler { if (GTDisplayFluid != null && GTDisplayFluid.isInstance(stack.getItem())) { - final NBTTagCompound nbTag = new NBTTagCompound(); final FluidStack fluidStack = getFluid(stack); - nbTag.setString("gtFluidName", fluidStack.getFluid().getName()); - nbTag.setInteger("Count", saveStackSize? fluidStack.amount: 1); - return nbTag; + if (fluidStack != null) { + final NBTTagCompound nbTag = new NBTTagCompound(); + nbTag.setString("gtFluidName", fluidStack.getFluid().getName()); + nbTag.setInteger("Count", saveStackSize? fluidStack.amount: 1); + return nbTag; + } + } return null;