From 14853a248101d5630847481f4fb5e6560fc5d26c Mon Sep 17 00:00:00 2001 From: miozune Date: Sun, 14 May 2023 02:03:22 +0900 Subject: [PATCH] Fix NPE with FCStackStringifyHandler (#129) --- .../com/glodblock/github/common/item/ItemFluidDrop.java | 6 ++++++ .../com/glodblock/github/common/item/ItemFluidPacket.java | 5 +++++ .../com/glodblock/github/nei/FCStackStringifyHandler.java | 1 + 3 files changed, 12 insertions(+) diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java index 0887c362..d31d6698 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java @@ -86,6 +86,7 @@ public class ItemFluidDrop extends FCBaseItem { shape = aIconRegister.registerIcon(NameConst.RES_KEY + NameConst.ITEM_FLUID_DROP); } + @Nullable public static ItemStack newStack(@Nullable FluidStack fluid) { if (fluid == null || fluid.amount <= 0) { return null; @@ -97,6 +98,7 @@ public class ItemFluidDrop extends FCBaseItem { return stack; } + @Nullable public static ItemStack newDisplayStack(FluidStack fluid) { if (fluid == null) { return null; @@ -120,6 +122,7 @@ public class ItemFluidDrop extends FCBaseItem { return getFluidStack(stack.getItemStack()) != null; } + @Nullable public static FluidStack getFluidStack(ItemStack stack) { if (stack == null || stack.getItem() != ItemAndBlockHolder.DROP || !stack.hasTagCompound()) { return null; @@ -139,6 +142,7 @@ public class ItemFluidDrop extends FCBaseItem { return fluidStack; } + @Nullable public static IAEFluidStack getAeFluidStack(@Nullable IAEItemStack stack) { if (stack == null) { return null; @@ -151,6 +155,7 @@ public class ItemFluidDrop extends FCBaseItem { return fluidStack; } + @Nullable public static IAEItemStack newAeStack(@Nullable FluidStack fluid) { if (fluid == null || fluid.amount <= 0) { return null; @@ -163,6 +168,7 @@ public class ItemFluidDrop extends FCBaseItem { return stack; } + @Nullable public static IAEItemStack newAeStack(@Nullable IAEFluidStack fluid) { if (fluid == null || fluid.getStackSize() <= 0) { return null; diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java index d96a177d..6bffaaf9 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java @@ -34,6 +34,7 @@ public class ItemFluidPacket extends FCBaseItem { setMaxStackSize(1); } + @Nullable public static FluidStack getFluidStack(ItemStack stack) { if (stack == null || !stack.hasTagCompound()) { return null; @@ -82,10 +83,12 @@ public class ItemFluidPacket extends FCBaseItem { } } + @Nullable public static FluidStack getFluidStack(@Nullable IAEItemStack stack) { return stack != null ? getFluidStack(stack.getItemStack()) : null; } + @Nullable public static ItemStack newStack(@Nullable FluidStack fluid) { if (fluid == null || fluid.amount == 0) { return null; @@ -99,6 +102,7 @@ public class ItemFluidPacket extends FCBaseItem { return stack; } + @Nullable public static ItemStack newStack(@Nullable IAEFluidStack fluid) { if (fluid == null || fluid.getStackSize() == 0) { return null; @@ -106,6 +110,7 @@ public class ItemFluidPacket extends FCBaseItem { return newStack(fluid.getFluidStack()); } + @Nullable public static ItemStack newDisplayStack(@Nullable FluidStack fluid) { if (fluid == null) { return null; diff --git a/src/main/java/com/glodblock/github/nei/FCStackStringifyHandler.java b/src/main/java/com/glodblock/github/nei/FCStackStringifyHandler.java index f755f6da..776f1cf4 100644 --- a/src/main/java/com/glodblock/github/nei/FCStackStringifyHandler.java +++ b/src/main/java/com/glodblock/github/nei/FCStackStringifyHandler.java @@ -25,6 +25,7 @@ public class FCStackStringifyHandler implements IStackStringifyHandler { public FluidStack getFluid(ItemStack item) { if (item.getItem() instanceof ItemFluidDrop) { FluidStack fluid = ItemFluidDrop.getFluidStack(item); + if (fluid == null) return null; fluid.amount /= Math.max(item.stackSize, 1); return fluid; } else if (item.getItem() instanceof ItemFluidPacket) {