From 3dc08696f72e53d831973ccd8e87fbca5d16f95b Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 14 Mar 2025 04:22:31 -0400 Subject: [PATCH] Fix Inventory Script for DBC Players --- .../npcs/scripted/entity/ScriptDBCPlayer.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java index b6909b889..c1f4f9bb2 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java @@ -493,17 +493,24 @@ public class ScriptDBCPlayer extends ScriptPlayer i } public IItemStack[] getInventory() { + // Get the base inventory from the super class + IItemStack[] baseInventory = super.getInventory(); + + // Load extra items from the NBT data NBTTagCompound compound = new NBTTagCompound(); this.player.writeToNBT(compound); - - NBTTagList list = compound.getCompoundTag("JRMCEP").getTagList("dbcExtraInvTag", 10); - IItemStack[] itemList = new IItemStack[list.tagCount()]; - for (int i = 0; i < list.tagCount(); i++) { - ItemStack itemStack = ItemStack.loadItemStackFromNBT(list.getCompoundTagAt(i)); - itemList[i] = NpcAPI.Instance().getIItemStack(itemStack); + NBTTagList extraList = compound.getCompoundTag("JRMCEP").getTagList("dbcExtraInvTag", 10); + IItemStack[] extraInventory = new IItemStack[extraList.tagCount()]; + for (int i = 0; i < extraList.tagCount(); i++) { + ItemStack itemStack = ItemStack.loadItemStackFromNBT(extraList.getCompoundTagAt(i)); + extraInventory[i] = NpcAPI.Instance().getIItemStack(itemStack); } - return itemList; + // Combine base and extra inventories + IItemStack[] fullInventory = new IItemStack[baseInventory.length + extraInventory.length]; + System.arraycopy(baseInventory, 0, fullInventory, 0, baseInventory.length); + System.arraycopy(extraInventory, 0, fullInventory, baseInventory.length, extraInventory.length); + return fullInventory; } public void setForm(byte form) {