From 8b0431340ca013469890c68e5d6d6b03e5329a90 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Wed, 12 Apr 2023 00:18:43 -0500 Subject: [PATCH] Crash fixes for custom items --- .../client/renderer/customitem/CustomItemRenderer.java | 10 ++++++++-- .../noppes/npcs/scripted/item/ScriptCustomItem.java | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java b/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java index 00fc246a4..ec0e670d2 100644 --- a/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/customitem/CustomItemRenderer.java @@ -49,8 +49,14 @@ public class CustomItemRenderer implements IItemRenderer { public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { ScriptCustomItem scriptCustomItem = ItemScripted.GetWrapper(itemStack); - ImageData imageData = Client.getImageData(scriptCustomItem.texture); - if(imageData.getTotalWidth() == -1 || imageData.getTotalHeight() == -1 || imageData.invalidTexture()) + BufferedImage bufferedImage = Client.getImageData(scriptCustomItem.texture).getBufferedImage(); + if (bufferedImage != null && (scriptCustomItem.width != bufferedImage.getWidth() || scriptCustomItem.height != bufferedImage.getHeight())) { + scriptCustomItem.width = bufferedImage.getWidth(); + scriptCustomItem.height = bufferedImage.getHeight(); + scriptCustomItem.saveItemData(); + } + + if(scriptCustomItem.width < 1 || scriptCustomItem.height < 1) return; if (type == ItemRenderType.INVENTORY) { diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java index 9060412df..dba3243ae 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java @@ -43,6 +43,8 @@ public class ScriptCustomItem extends ScriptItemStack implements IItemCustom, IS public float rotationX, rotationY, rotationZ; public float rotationXRate, rotationYRate, rotationZRate; + public int width = -1, height = -1; + public ScriptCustomItem(ItemStack item) { super(item); loadScriptData();