Analytics, call dispatch first
This commit is contained in:
parent
a9e00c0436
commit
6e0d304266
@ -141,3 +141,15 @@ let slotPlayed (discordMember : DiscordMember) amount result prize =
|
||||
"prize" , string prize
|
||||
]
|
||||
track "Slots Played" discordMember.Id data
|
||||
|
||||
let walletSubmit (discordMember : DiscordMember) =
|
||||
let data = [
|
||||
"user_display_name" , discordMember.Username
|
||||
]
|
||||
track "Wallet Submitted" discordMember.Id data
|
||||
|
||||
let invalidWalletSubmit (discordMember : DiscordMember) =
|
||||
let data = [
|
||||
"user_display_name" , discordMember.Username
|
||||
]
|
||||
track "Invalid Wallet Submitted" discordMember.Id data
|
||||
|
@ -247,6 +247,7 @@ let handleBuyItem (dispatch : IDiscordContext -> Task) (ctx : IDiscordContext) i
|
||||
>>= checkDoesntExceedStackCap item
|
||||
|> handleResultWithResponse ctx (fun player -> async {
|
||||
let price = match item.Attributes with CanBuy price -> price | _ -> 0<GBT>
|
||||
do! dispatch ctx |> Async.AwaitTask
|
||||
do! DbService.updatePlayerCurrency -price player.DiscordId |> Async.Ignore
|
||||
do! DbService.addToPlayerInventory player.DiscordId item |> Async.Ignore
|
||||
if storeItem.LimitStock = true && storeItem.Stock > 0 then
|
||||
@ -264,8 +265,6 @@ let handleBuyItem (dispatch : IDiscordContext -> Task) (ctx : IDiscordContext) i
|
||||
builder.AddEmbed(embed) |> ignore
|
||||
do! ctx.FollowUp builder |> Async.AwaitTask
|
||||
|
||||
do! dispatch ctx |> Async.AwaitTask
|
||||
|
||||
let builder = DiscordMessageBuilder()
|
||||
builder.WithContent($"{player.Name} just purchased {item.Name}!") |> ignore
|
||||
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle)
|
||||
|
@ -464,10 +464,13 @@ Keep an eye on <#{GuildEnvironment.channelAnnouncements}> for updates.
|
||||
do! channel.SendMessageAsync(builder)
|
||||
|> Async.AwaitTask
|
||||
|> Async.Ignore
|
||||
do! Analytics.walletSubmit (ctx.GetDiscordMember())
|
||||
else
|
||||
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
|
||||
do! Analytics.invalidWalletSubmit (ctx.GetDiscordMember())
|
||||
with _ ->
|
||||
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
|
||||
do! Analytics.invalidWalletSubmit (ctx.GetDiscordMember())
|
||||
} :> Task
|
||||
|
||||
type Inviter() =
|
||||
|
Loading…
x
Reference in New Issue
Block a user