From 12ca3c272faa2e8f8c67d5035252a11d14891983 Mon Sep 17 00:00:00 2001 From: ceikry Date: Wed, 25 Aug 2021 16:28:54 -0500 Subject: [PATCH] Fix stackable consumable bug --- .../java/core/game/content/consumable/Consumable.java | 11 ++++++++--- .../core/game/content/consumable/Consumables.java | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Server/src/main/java/core/game/content/consumable/Consumable.java b/Server/src/main/java/core/game/content/consumable/Consumable.java index 789099637..a3e82ff3f 100644 --- a/Server/src/main/java/core/game/content/consumable/Consumable.java +++ b/Server/src/main/java/core/game/content/consumable/Consumable.java @@ -1,5 +1,7 @@ package core.game.content.consumable; +import api.Container; +import api.ContentAPI; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; @@ -46,10 +48,13 @@ public abstract class Consumable implements Plugin { public void consume(final Item item, final Player player) { executeConsumptionActions(player); final int nextItemId = getNextItemId(item.getId()); + + if(item.getAmount() > 1){ + ContentAPI.removeItem(player, item.getId(), Container.INVENTORY); + } else ContentAPI.removeItem(player, item, Container.INVENTORY); + if (nextItemId != -1) { - player.getInventory().replace(new Item(nextItemId), item.getSlot()); - } else { - player.getInventory().remove(item); + ContentAPI.addItem(player, nextItemId, 1); } final int initialLifePoints = player.getSkills().getLifepoints(); Consumables.getConsumableById(item.getId()).effect.activate(player); diff --git a/Server/src/main/java/core/game/content/consumable/Consumables.java b/Server/src/main/java/core/game/content/consumable/Consumables.java index cef113324..0a618a18f 100644 --- a/Server/src/main/java/core/game/content/consumable/Consumables.java +++ b/Server/src/main/java/core/game/content/consumable/Consumables.java @@ -285,7 +285,7 @@ public enum Consumables { /** Miscellaneous */ CHOCOLATE_BAR(new Food(new int[] {1973}, new HealingEffect(3))), PURPLE_SWEETS(new Food(new int[] {4561}, new HealingEffect(0))), - PURPLE_SWEETS_STACKABLE(new Food(new int[] {10476, 10476}, new MultiEffect(new EnergyEffect(10), new RandomHealthEffect(1, 3)), "The sugary goodness heals some energy.", "The sugary goodness is yummy.")), + PURPLE_SWEETS_STACKABLE(new Food(new int[] {10476}, new MultiEffect(new EnergyEffect(10), new RandomHealthEffect(1, 3)), "The sugary goodness heals some energy.", "The sugary goodness is yummy.")), FIELD_RATION(new Food(new int[] {7934}, new HealingEffect(10))), ROLL(new Food(new int[] {6963}, new HealingEffect(6))), TCHIKI_MONKEY_NUTS(new Food(new int[] {7573}, new HealingEffect(5), "You eat the Tchiki monkey nuts. They taste nutty.")),