From 793b61267d4ef3316868c2d664615113a46d11a7 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Wed, 22 Jun 2022 00:22:26 +0700 Subject: [PATCH] Don't block --- Bot/Games/Trainer.fs | 15 ++++++++++----- Bot/PlayerInteractions.fs | 9 ++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Bot/Games/Trainer.fs b/Bot/Games/Trainer.fs index bf3694f..a261490 100644 --- a/Bot/Games/Trainer.fs +++ b/Bot/Games/Trainer.fs @@ -66,7 +66,8 @@ let handleTrainerStep1 (ctx : IDiscordContext) = do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask do! Analytics.trainingDojoStep "LFG" (ctx.GetDiscordMember().Id) (ctx.GetDiscordMember().Username) - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let defend (ctx : IDiscordContext) = async { @@ -76,7 +77,8 @@ let defend (ctx : IDiscordContext) = let embed = Embeds.pickDefense "Trainer-2" { PlayerData.empty with Inventory = [ shieldItem ] ; Name = name } true do! ctx.FollowUp(embed) |> Async.AwaitTask do! Analytics.trainingDojoStep "DefendCommand" (ctx.GetDiscordMember().Id) (ctx.GetDiscordMember().Username) - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let handleDefenseMsg hackId = { ButtonId = "Trainer-3" @@ -101,7 +103,8 @@ let handleDefense (ctx : IDiscordContext) = do! Async.Sleep 1500 do! sendFollowUpMessageWithButton ctx (handleDefenseMsg defaultHack.Name) do! Analytics.trainingDojoStep "ShieldActivated" (ctx.GetDiscordMember().Id) (ctx.GetDiscordMember().Username) - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let handleTrainerStep3 (ctx : IDiscordContext) = async { @@ -115,7 +118,8 @@ let handleTrainerStep3 (ctx : IDiscordContext) = do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask do! Analytics.trainingDojoStep "LetsHack" (ctx.GetDiscordMember().Id) (ctx.GetDiscordMember().Username) - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let hack (target : DiscordUser) (ctx : IDiscordContext) = async { @@ -137,7 +141,8 @@ let hack (target : DiscordUser) (ctx : IDiscordContext) = do! ctx.FollowUp(builder) |> Async.AwaitTask do! Analytics.trainingDojoStep "HackCommand" (ctx.GetDiscordMember().Id) (ctx.GetDiscordMember().Username) - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let handleHack (ctx : IDiscordContext) = PlayerInteractions.executePlayerAction ctx (fun player -> async { diff --git a/Bot/PlayerInteractions.fs b/Bot/PlayerInteractions.fs index 07866ff..16bdedc 100644 --- a/Bot/PlayerInteractions.fs +++ b/Bot/PlayerInteractions.fs @@ -14,7 +14,8 @@ let executePlayerAction (ctx : IDiscordContext) (dispatch : PlayerData -> Async< match playerResult with | Some player -> do! dispatch player | None -> do! Messaging.sendFollowUpMessage ctx "You are currently not a hacker, first use the /redpill command to become one" - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let executePlayerActionNoMsg (ctx : IDiscordContext) (dispatch : PlayerData -> Async) = async { @@ -24,7 +25,8 @@ let executePlayerActionNoMsg (ctx : IDiscordContext) (dispatch : PlayerData -> A match playerResult with | Some player -> do! dispatch player | None -> do! Messaging.sendFollowUpMessage ctx "You are currently not a hacker, first use the /redpill command to become one" - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let executePlayerActionWithTarget (targetPlayer : DiscordUser) (ctx : IDiscordContext) (dispatch : PlayerData -> PlayerData -> Async) = async { @@ -43,7 +45,8 @@ let executePlayerActionWithTarget (targetPlayer : DiscordUser) (ctx : IDiscordCo if targetPlayer.IsBot then do! Messaging.sendFollowUpMessage ctx $"{targetPlayer.Username} is a bot, pick a real human to hack" else do! Messaging.sendFollowUpMessage ctx "Your target is not connected to the network, they must join first by using the /redpill command" - } |> Async.StartAsTask :> Task + } |> Async.Start + Task.CompletedTask let executePlayerActionWithTargetId defer (targetId : uint64) (ctx : IDiscordContext) (dispatch : PlayerData -> PlayerData -> Async) = async {