From f1a95b77e9735348ef1700168ae56dc3b5699902 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 7 Nov 2025 21:13:24 -0800 Subject: [PATCH] Fix mall shop purchases --- .../emu/nebula/data/resources/MallShopDef.java | 17 ++++++++++++++++- .../handlers/HandlerMallShopOrderReq.java | 6 +++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/emu/nebula/data/resources/MallShopDef.java b/src/main/java/emu/nebula/data/resources/MallShopDef.java index 11026a7..b2bb621 100644 --- a/src/main/java/emu/nebula/data/resources/MallShopDef.java +++ b/src/main/java/emu/nebula/data/resources/MallShopDef.java @@ -4,6 +4,7 @@ import com.google.gson.annotations.SerializedName; import emu.nebula.data.BaseDef; import emu.nebula.data.ResourceType; +import emu.nebula.game.inventory.ItemParamMap; import lombok.Getter; @Getter @@ -12,12 +13,26 @@ public class MallShopDef extends BaseDef { @SerializedName("Id") private String IdString; private int Stock; + + private int ExchangeItemId; + private int ExchangeItemQty; + private int ItemId; - private int CurrencyItemId; private int ItemQty; + private transient ItemParamMap products; + @Override public int getId() { return IdString.hashCode(); } + + @Override + public void onLoad() { + this.products = new ItemParamMap(); + + if (this.ItemId > 0) { + this.products.add(this.ItemId, this.ItemQty); + } + } } diff --git a/src/main/java/emu/nebula/server/handlers/HandlerMallShopOrderReq.java b/src/main/java/emu/nebula/server/handlers/HandlerMallShopOrderReq.java index f88ed6e..35c18bb 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerMallShopOrderReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerMallShopOrderReq.java @@ -16,15 +16,15 @@ public class HandlerMallShopOrderReq extends NetHandler { var req = MallShopOrderReq.parseFrom(message); // Get package data - var data = GameData.getMallPackageDataTable().get(req.getId().hashCode()); + var data = GameData.getMallShopDataTable().get(req.getId().hashCode()); if (data == null) { return session.encodeMsg(NetMsgId.mall_shop_order_failed_ack); } // Buy items var change = session.getPlayer().getInventory().buyItem( - data.getCurrencyItemId(), - data.getCurrencyItemQty(), + data.getExchangeItemId(), + data.getExchangeItemQty(), data.getProducts(), req.getQty() );