From 21e23b9bdb3e8c33826670baf075ecc116247acf Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Sun, 5 Jun 2022 13:57:02 +0700 Subject: [PATCH] Filter out unlisted items from inventory --- Bot/DbService.fs | 19 +++++++++++++++++++ Bot/Games/Store.fs | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Bot/DbService.fs b/Bot/DbService.fs index 872edb7..9847458 100644 --- a/Bot/DbService.fs +++ b/Bot/DbService.fs @@ -120,6 +120,25 @@ let getStoreItems (storeId : string) = }) |> Async.AwaitTask +let getAllActiveStoreItems () = + connStr + |> Sql.connect + |> Sql.query """ + SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category, + buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods + FROM store_item + JOIN item i on store_item.item_id = i.id + WHERE store_item.unlisted = false + """ + |> Sql.executeAsync (fun reader -> { + StoreId = reader.string "store_id" + Stock = reader.int "stock" + LimitStock = reader.bool "limit_stock" + Available = reader.bool "available" + StoreItem.Item = readItem reader + }) + |> Async.AwaitTask + let getStoreItemBySymbol (itemSymbol : string) = connStr |> Sql.connect diff --git a/Bot/Games/Store.fs b/Bot/Games/Store.fs index 68e703a..b66e754 100644 --- a/Bot/Games/Store.fs +++ b/Bot/Games/Store.fs @@ -195,10 +195,11 @@ let getSellEmbed (items : Inventory) = .AsEphemeral(true) let showJpegsEmbed (ctx : IDiscordContext) = PlayerInteractions.executePlayerAction ctx (fun player -> async { + let! storeItems = DbService.getAllActiveStoreItems () let jpegs = player.Inventory |> Inventory.getItemsByType ItemType.Jpeg - |> List.map (fun i -> { StoreId = "BACKALLEY" ; Item = i ; Stock = 1 ; LimitStock = false ; Available = true }) + |> List.choose (fun ii -> storeItems |> List.tryFind (fun si -> si.Item.Id = ii.Id)) match jpegs with | [] -> do! Messaging.sendFollowUpMessage ctx $"You currently do not own any jpegs or raffle tickets. Go to <#{GuildEnvironment.channelBackAlley}> to buy some" | jpegs ->