diff --git a/Server/src/main/content/global/handlers/iface/JewelleryInterface.java b/Server/src/main/content/global/handlers/iface/JewelleryInterface.java index 11eb23415..ea45a538a 100644 --- a/Server/src/main/content/global/handlers/iface/JewelleryInterface.java +++ b/Server/src/main/content/global/handlers/iface/JewelleryInterface.java @@ -165,6 +165,7 @@ public final class JewelleryInterface extends ComponentPlugin { amount = 5; break; case 124: + /* No need to calculate the maximum amount here, because the make() function will perform that step if (data.name().contains("GOLD")) { amount = player.getInventory().getAmount(new Item(GOLD_BAR)); } else { @@ -178,6 +179,8 @@ public final class JewelleryInterface extends ComponentPlugin { amount = first; } } + */ + amount = 99; break; case 199: final JewelleryItem d = data; diff --git a/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java index 37304e77d..89358a5fc 100644 --- a/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java +++ b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java @@ -5,6 +5,7 @@ import core.game.component.Component; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; import java.util.HashMap; @@ -185,7 +186,9 @@ public class JewelleryCrafting { for (int i = 0; i < data.items.length; i++) { if (player.getInventory().contains(data.getItems()[i], 1)) { length++; - } + } else if (inEquipmentOrInventory(player, 10881, 1) && player.goldSatchel.contains(data.getItems()[i], 1)){ + length++; + } } if (!player.getInventory().contains(mouldFor(data.name()), 1)) { length--; @@ -235,6 +238,9 @@ public class JewelleryCrafting { amt = player.getInventory().getAmount(new Item(GOLD_BAR)); } else { int first = player.getInventory().getAmount(new Item(data.getItems()[0])); + if (inEquipmentOrInventory(player, 10881, 1)) { + first += player.goldSatchel.getAmount(new Item(data.getItems()[0])); + } int second = player.getInventory().getAmount(new Item(data.getItems()[1])); if (first == second) { amt = first; @@ -250,7 +256,9 @@ public class JewelleryCrafting { for (int i = 0; i < data.items.length; i++) { if (player.getInventory().contains(data.getItems()[i], amount)) { length++; - } + } else if (data.getItems()[i] != GOLD_BAR && inEquipmentOrInventory(player, 10881, 1) && player.goldSatchel.contains(data.getItems()[i], 1)){ + length++; + } } if (length != data.getItems().length) { player.getPacketDispatch().sendMessage("You don't have the required items to make this item."); diff --git a/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java index e69a7ee29..be2f7b58c 100644 --- a/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java +++ b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java @@ -67,11 +67,19 @@ public final class JewelleryPulse extends SkillPulse { if (++ticks % 5 != 0) { return false; } - if (player.getInventory().remove(getItems())) { + Item items[] = getItems(); + for (int i = 0; i < items.length; i++) { + if (player.getInventory().remove(items[i]) || (items[i].getId() != 2357 && inEquipmentOrInventory(player, 10881, 1) && player.goldSatchel.remove(items[i]))) { + continue; + } else { + return true; + } + } + //if (player.getInventory().remove(getItems())) { final Item item = new Item(type.getSendItem()); player.getInventory().add(item); player.getSkills().addExperience(Skills.CRAFTING, type.getExperience(), true); - } + //} amount--; return amount < 1; }