From c7085f7acb460958a6548b1e12a5810069e6df4b Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Mon, 13 Jun 2022 21:24:55 -0500 Subject: [PATCH] IDBCPlayer: -Added getItem(byte slot) to get IItemStack objects from DBC EP slots. -Renamed setInventoryItem to setItem --- .../npcs/scripted/entity/ScriptDBCPlayer.java | 16 +++++++++++++++- .../scripted/interfaces/entity/IDBCPlayer.java | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java index ba381ec0e..a5c95a2dd 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java @@ -428,7 +428,7 @@ public class ScriptDBCPlayer extends ScriptPlayer i return compound.getCompoundTag("JRMCEP").getString("extracode"); } - public void setInventoryItem(byte slot, IItemStack itemStack) { + public void setItem(byte slot, IItemStack itemStack) { NBTTagCompound compound = new NBTTagCompound(); this.player.writeToNBT(compound); @@ -451,6 +451,20 @@ public class ScriptDBCPlayer extends ScriptPlayer i this.player.readFromNBT(compound); } + public IItemStack getItem(byte slot) { + NBTTagCompound compound = new NBTTagCompound(); + this.player.writeToNBT(compound); + + NBTTagList list = compound.getCompoundTag("JRMCEP").getTagList("dbcExtraInvTag",10); + for (int i = 0; i < list.tagCount(); i++) { + if (list.getCompoundTagAt(i).getByte("Slot") == slot) { + return NpcAPI.Instance().getIItemStack(ItemStack.loadItemStackFromNBT(list.getCompoundTagAt(i))); + } + } + + return null; + } + public IItemStack[] getInventory(){ NBTTagCompound compound = new NBTTagCompound(); this.player.writeToNBT(compound); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IDBCPlayer.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IDBCPlayer.java index 1eb7aa022..52d799e06 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IDBCPlayer.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IDBCPlayer.java @@ -60,7 +60,8 @@ public interface IDBCPlayer extends IPlayer { * 10 - 1st Vanity Slot Down to the right * @param itemStack The item stack to be set into the slot. Set to null to remove the stack in that slot. */ - void setInventoryItem(byte slot, IItemStack itemStack); + void setItem(byte slot, IItemStack itemStack); + IItemStack getItem(byte slot); IItemStack[] getInventory(); void setForm(byte form);