diff --git a/.gitignore b/.gitignore index ca28fe9ef..29bbc6b88 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ eclipse .project .settings bin -.metadata \ No newline at end of file +.metadata +*.bak diff --git a/src/main/java/noppes/npcs/client/gui/player/GuiNPCTrader.java b/src/main/java/noppes/npcs/client/gui/player/GuiNPCTrader.java index 81ffe1346..6536f822f 100644 --- a/src/main/java/noppes/npcs/client/gui/player/GuiNPCTrader.java +++ b/src/main/java/noppes/npcs/client/gui/player/GuiNPCTrader.java @@ -117,6 +117,10 @@ public class GuiNPCTrader extends GuiContainerNPCInterface{ this.fontRendererObj.drawString(title, (xSize - fontRendererObj.getStringWidth(title))/2, 131, 0xDD0000); GL11.glTranslatef(0, 0, -300); } + else if (!container.isSlotEnabled(slot, player)) { + String title = StatCollector.translateToLocal("trader.slotdisabled"); + this.fontRendererObj.drawString(title, (xSize - fontRendererObj.getStringWidth(title))/2, 131, 0x00DD00); + } else{ String title = StatCollector.translateToLocal("trader.sufficient"); this.fontRendererObj.drawString(title, (xSize - fontRendererObj.getStringWidth(title))/2, 131, 0x00DD00); diff --git a/src/main/java/noppes/npcs/containers/ContainerNPCTrader.java b/src/main/java/noppes/npcs/containers/ContainerNPCTrader.java index 5459ccc0a..1165fea6f 100644 --- a/src/main/java/noppes/npcs/containers/ContainerNPCTrader.java +++ b/src/main/java/noppes/npcs/containers/ContainerNPCTrader.java @@ -62,6 +62,8 @@ public class ContainerNPCTrader extends ContainerNpcInterface{ return null; if(!canBuy(i, entityplayer)) return null; + if (!isSlotEnabled(i, entityplayer)) + return null; NoppesUtilPlayer.consumeItem(entityplayer, role.inventoryCurrency.getStackInSlot(i), role.ignoreDamage, role.ignoreNBT); NoppesUtilPlayer.consumeItem(entityplayer, role.inventoryCurrency.getStackInSlot(i + 18), role.ignoreDamage, role.ignoreNBT); ItemStack soldItem = item.copy(); @@ -70,12 +72,14 @@ public class ContainerNPCTrader extends ContainerNpcInterface{ return soldItem; } + public boolean isSlotEnabled(int slot, EntityPlayer player) { + return role.disableSlot[slot] == 0; + } public boolean canBuy(int slot, EntityPlayer player) { ItemStack currency = role.inventoryCurrency.getStackInSlot(slot); ItemStack currency2 = role.inventoryCurrency.getStackInSlot(slot + 18); if(currency == null && currency2 == null) return true; - if (role.disableSlot[slot] > 0) return false; if(currency == null){ currency = currency2; currency2 = null; diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTrader.java b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTrader.java index 2abb3249a..0e496569c 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTrader.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTrader.java @@ -1,10 +1,11 @@ package noppes.npcs.scripted.roles; +import foxz.utils.Market; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.roles.RoleTrader; import noppes.npcs.scripted.ScriptItemStack; import noppes.npcs.scripted.constants.RoleType; -import foxz.utils.Market; +import noppes.npcs.scripted.interfaces.IPlayer; public class ScriptRoleTrader extends ScriptRoleInterface{ private RoleTrader role; @@ -106,6 +107,11 @@ public class ScriptRoleTrader extends ScriptRoleInterface{ return role.purchases[slot]; } + public int getPurchaseNum(int slot, IPlayer player) { + // TODO get purchase num by player + return -1; + } + /** * Sets the purchase count of all slots to 0 */ diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index 14502512f..bf212b636 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -222,6 +222,7 @@ role.companion=Companion trader.insufficient=Insufficient Currency trader.sufficient=Sufficient Currency +trader.slotdisabled=Slot Disabled job.name=Job job.none=No Job