Filter out unlisted items from inventory

This commit is contained in:
Joseph Ferano 2022-06-05 13:57:02 +07:00
parent a3ee9bbc1a
commit 21e23b9bdb
2 changed files with 21 additions and 1 deletions

View File

@ -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

View File

@ -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 ->