namespace ET.Server { [MessageSessionHandler(SceneType.Gate)] public class C2G_UseItemHandler : RpcMessageHandler { protected override async ETTask OnRun(Session session, C2G_UseItem request, R2C_UseItem response) { Player player = session.GetComponent()?.Player; if (player == null) { response.Error = ErrorCode.ERR_RpcFail; response.Message = "player_not_found"; return; } if (!BagService.TryUseItem(player, request.itemIndex, request.count <= 0 ? 1 : request.count, out string reason, out ItemUnit item)) { response.Error = ErrorCode.ERR_BAG_ITEM_NOT_ENOUGH; response.Message = reason; return; } response.item = BagMapper.ToProto(item); await ETTask.CompletedTask; } } }