From bd4c2bb4497667e5a5c17d45bd95a268e9e55cee Mon Sep 17 00:00:00 2001 From: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Date: Wed, 16 Jun 2021 22:48:00 +1000 Subject: [PATCH] Fixed where new signs would throw NPE --- .../modifiers/NBTModifier_1_16_3.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_3.java b/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_3.java index 1950502..ff6a495 100644 --- a/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_3.java +++ b/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_3.java @@ -507,12 +507,16 @@ public class NBTModifier_1_16_3 if (item != null && item.getType().name().contains("SIGN")) { net.minecraft.server.v1_16_R3.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); - NBTTagCompound tag = nmsItem.getTag().getCompound("BlockEntityTag"); - String text1 = tag.getString("Text1").toLowerCase(); - String text2 = tag.getString("Text2").toLowerCase(); - String text3 = tag.getString("Text3").toLowerCase(); - String text4 = tag.getString("Text4").toLowerCase(); - return text1.contains("\"nbt\":") || text2.contains("\"nbt\":") || text3.contains("\"nbt\":") || text4.contains("\"nbt\":"); + NBTTagCompound tag = nmsItem.getTag(); + if (tag != null) + { + NBTTagCompound blockEntityTag = tag.getCompound("BlockEntityTag"); + String text1 = blockEntityTag.hasKey("Text1") ? tag.getString("Text1").toLowerCase() : ""; + String text2 = blockEntityTag.hasKey("Text2") ? tag.getString("Text2").toLowerCase() : ""; + String text3 = blockEntityTag.hasKey("Text3") ? tag.getString("Text3").toLowerCase() : ""; + String text4 = blockEntityTag.hasKey("Text4") ? tag.getString("Text4").toLowerCase() : ""; + return text1.contains("\"nbt\":") || text2.contains("\"nbt\":") || text3.contains("\"nbt\":") || text4.contains("\"nbt\":"); + } } return false; } @@ -522,10 +526,10 @@ public class NBTModifier_1_16_3 ItemStack item = event.getItemInHand(); net.minecraft.server.v1_16_R3.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); NBTTagCompound tag = nmsItem.getTag().getCompound("BlockEntityTag"); - String text1 = tag.getString("Text1").toLowerCase(); - String text2 = tag.getString("Text2").toLowerCase(); - String text3 = tag.getString("Text3").toLowerCase(); - String text4 = tag.getString("Text4").toLowerCase(); + String text1 = tag.hasKey("Text1") ? tag.getString("Text1").toLowerCase() : ""; + String text2 = tag.hasKey("Text2") ? tag.getString("Text2").toLowerCase() : ""; + String text3 = tag.hasKey("Text3") ? tag.getString("Text3").toLowerCase() : ""; + String text4 = tag.hasKey("Text4") ? tag.getString("Text4").toLowerCase() : ""; if (text1.contains("\"nbt\":")) { tag.setString("Text1", "{\"text\":\"NBT tag removed\"}");