From 3c3d9b141e3fa89b9cb0a2a1a42feac6f98e97a3 Mon Sep 17 00:00:00 2001 From: CAtlas0784 Date: Wed, 16 Sep 2026 02:19:32 +0700 Subject: [PATCH] feat(shop): [Item 12] add Shop Router and register commodity purchase RPC handlers --- .../Ananta.Handlers/Game/GameRouter.Shop.cs | 50 +++++++++++++++++++ .../Ananta.Handlers/Game/GameRouter.cs | 8 +++ 2 files changed, 58 insertions(+) create mode 100644 Ananta.Server/Ananta.Handlers/Game/GameRouter.Shop.cs diff --git a/Ananta.Server/Ananta.Handlers/Game/GameRouter.Shop.cs b/Ananta.Server/Ananta.Handlers/Game/GameRouter.Shop.cs new file mode 100644 index 0000000..af3541a --- /dev/null +++ b/Ananta.Server/Ananta.Handlers/Game/GameRouter.Shop.cs @@ -0,0 +1,50 @@ +using Ananta.SDK.Network; +using Ananta.SDK.Rpc; +using Ananta.Server.Protocol.Client4229938; + +namespace Ananta.Server.Handlers.Game; + +internal sealed partial class GameRouter +{ + [Handler(MethodId.AskNpcShopCommodityInfo, HandlerPacketKind.Invoke)] + private Task AskNpcShopCommodityInfo(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskNpcShopCommodityInfo invoke"); + return conn.ReturnEmptyOkAsync(msg); + } + + [Handler(MethodId.AskReadCommodities, HandlerPacketKind.Invoke)] + private Task AskReadCommodities(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskReadCommodities invoke"); + return conn.ReturnEmptyOkAsync(msg); + } + + [Handler(MethodId.AskBuyCommodity, HandlerPacketKind.Invoke)] + private Task AskBuyCommodity(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskBuyCommodity invoke"); + return conn.ReturnEmptyOkAsync(msg); + } + + [Handler(MethodId.AskBuyCommodities, HandlerPacketKind.Invoke)] + private Task AskBuyCommodities(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskBuyCommodities invoke"); + return conn.ReturnEmptyOkAsync(msg); + } + + [Handler(MethodId.AskBuyCommodityToBag, HandlerPacketKind.Invoke)] + private Task AskBuyCommodityToBag(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskBuyCommodityToBag invoke"); + return conn.ReturnEmptyOkAsync(msg); + } + + [Handler(MethodId.AskBuyCommoditiesToBag, HandlerPacketKind.Invoke)] + private Task AskBuyCommoditiesToBag(Connection conn, UxRpcMessage msg) + { + conn.Log.Info("[SHOP] AskBuyCommoditiesToBag invoke"); + return conn.ReturnEmptyOkAsync(msg); + } +} diff --git a/Ananta.Server/Ananta.Handlers/Game/GameRouter.cs b/Ananta.Server/Ananta.Handlers/Game/GameRouter.cs index c4d91e1..ae7c28a 100644 --- a/Ananta.Server/Ananta.Handlers/Game/GameRouter.cs +++ b/Ananta.Server/Ananta.Handlers/Game/GameRouter.cs @@ -125,6 +125,14 @@ internal sealed partial class GameRouter MethodId.AskClaimGachaMilestone, MethodId.AskChaosMasterGacha, + // Shop and Marketplace. + MethodId.AskNpcShopCommodityInfo, + MethodId.AskReadCommodities, + MethodId.AskBuyCommodity, + MethodId.AskBuyCommodities, + MethodId.AskBuyCommodityToBag, + MethodId.AskBuyCommoditiesToBag, + // Activities. MethodId.AskActivityCancelRedPoint,