Crafting Gold Jewellery will automatically take gems from the Gold Satchel

This commit is contained in:
randy 2025-03-30 15:53:05 -06:00
parent bfbfae8391
commit 08ffa6fee6
3 changed files with 23 additions and 4 deletions

View file

@ -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;

View file

@ -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.");

View file

@ -67,11 +67,19 @@ public final class JewelleryPulse extends SkillPulse<Item> {
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;
}