Finish off analytics for now

This commit is contained in:
Joseph Ferano 2022-04-02 15:04:00 +07:00
parent fc438be0f0
commit f25b495089
3 changed files with 13 additions and 22 deletions

View File

@ -121,15 +121,15 @@ let sellWeaponButton (discordMember : DiscordMember) (weapon : ItemDetails) =
]
track "Sell Weapon Button Clicked" discordMember.Id data
let hackCommand id name =
let hackCommand (discordMember : DiscordMember) =
let data = [
"user_display_name" , name
"user_display_name" , discordMember.Username
]
track "Hack Command Invoked" id data
let shieldCommand id name =
let shieldCommand (discordMember : DiscordMember) =
let data = [
"user_display_name" , name
"user_display_name" , discordMember.Username
]
track "Hack Command Invoked" id data

View File

@ -148,9 +148,12 @@ let hack (target : DiscordUser) (ctx : IDiscordContext) =
>>= checkHasEmptyHacks
>>= checkPlayerIsAttackingThemselves defender
|> function
| Ok atkr ->
| Ok atkr -> async {
let embed = Embeds.pickHack "Attack" atkr defender false
ctx.FollowUp(embed) |> Async.AwaitTask
do! ctx.FollowUp(embed) |> Async.AwaitTask
// TODO: Add a call when it's an error with the error type, must include an error code
do! Analytics.hackCommand (ctx.GetDiscordMember())
}
| Error msg -> sendFollowUpMessage ctx msg
})
@ -188,6 +191,7 @@ let defend (ctx : IDiscordContext) =
let p = Player.removeExpiredActions player
let embed = Embeds.pickDefense "Defend" p false
do! ctx.FollowUp embed |> Async.AwaitTask
do! Analytics.shieldCommand (ctx.GetDiscordMember())
else
let msg = $"You currently do not have any Shields to protect yourself from hacks. Please go to the <#{GuildEnvironment.channelTraining}> and purchase one."
do! Messaging.sendFollowUpMessage ctx msg
@ -211,16 +215,15 @@ let handleDefense (ctx : IDiscordContext) =
Cooldown = shield.Cooldown
Timestamp = DateTime.UtcNow
}
do! DbService.updatePlayer p
|> Async.Ignore
do! DbService.addPlayerEvent p.DiscordId defense
|> Async.Ignore
do! DbService.updatePlayer p |> Async.Ignore
do! DbService.addPlayerEvent p.DiscordId defense |> Async.Ignore
let builder = DiscordMessageBuilder()
builder.WithContent($"{ctx.GetDiscordMember().Username} has protected their system!") |> ignore
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle)
do! channel.SendMessageAsync(builder)
|> Async.AwaitTask
|> Async.Ignore
do! Analytics.shieldActivated (ctx.GetDiscordMember()) shield.Item.Name
})
})

View File

@ -167,18 +167,6 @@ let handleSell (ctx : IDiscordContext) itemId =
})
})
//let inventory (ctx : IDiscordContext) =
// executePlayerAction ctx (fun player -> async {
// player.Inventory
// |> List.groupBy (fun item -> item.Details)
// })
//
//
//let consume (ctx : IDiscordContext) =
// executePlayerAction ctx (fun player -> async {
//
// })
let handleStoreEvents (_ : DiscordClient) (event : ComponentInteractionCreateEventArgs) =
let ctx = DiscordEventContext event :> IDiscordContext
let id = ctx.GetInteractionId()