From 48873ab12b0b7da6a3410b5f15e7d027fd6c804b Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 16 Dec 2021 02:30:48 +0100 Subject: [PATCH] Fixed potential Pattern crash when loading Minecraft. Fixes #3176 Fixes a NPE when using "level" later on in the pattern factory Normally, this shouldn't be an issue because there is a hasTag() guard (and MC preloads tooltips of items where tag = null) But for some reason, there is an environment where MC loads the Pattern tooltip (at startup) with a NBT tag --- CHANGELOG.md | 1 + .../java/com/refinedmods/refinedstorage/item/PatternItem.java | 2 +- .../render/blockentity/PatternItemBlockEntityRenderer.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 801a67579..e753a2f7b 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixed - Fixed all Refined Storage advancements being granted when joining a world. +- Fixed potential Pattern crash when loading Minecraft. ## [v1.10.0-beta.1] - 2021-12-15 diff --git a/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java b/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java index 499bb80c1..7187d20f7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java @@ -219,7 +219,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider, IItem public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, level, tooltip, flag); - if (!stack.hasTag()) { + if (!stack.hasTag() || level == null) { return; } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/blockentity/PatternItemBlockEntityRenderer.java b/src/main/java/com/refinedmods/refinedstorage/render/blockentity/PatternItemBlockEntityRenderer.java index 199cc8fea..8829bdf92 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/blockentity/PatternItemBlockEntityRenderer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/blockentity/PatternItemBlockEntityRenderer.java @@ -22,7 +22,7 @@ public class PatternItemBlockEntityRenderer extends BlockEntityWithoutLevelRende @Override public void renderByItem(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack poseStack, MultiBufferSource renderTypeBuffer, int combinedLight, int combinedOverlay) { - ICraftingPattern pattern = PatternItem.fromCache(null, stack); + ICraftingPattern pattern = PatternItem.fromCache(Minecraft.getInstance().level, stack); ItemStack outputStack = pattern.getOutputs().get(0);