Disable buttons

This commit is contained in:
Joseph Ferano 2022-06-26 12:51:08 +07:00
parent ff75ed15d0
commit 3d490c8754
3 changed files with 18 additions and 6 deletions

View File

@ -100,15 +100,15 @@ let asdf _ (event : DSharpPlus.EventArgs.InteractionCreateEventArgs) =
} |> Async.StartAsTask } |> Async.StartAsTask
:> Task :> Task
//hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf)) //hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf))
hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
GuildEnvironment.botClientHacker <- Some hackerBattleBot
jpegBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously jpegBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
GuildEnvironment.botClientJpeg <- Some jpegBot GuildEnvironment.botClientJpeg <- Some jpegBot
storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
GuildEnvironment.botClientStore <- Some storeBot GuildEnvironment.botClientStore <- Some storeBot
hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
GuildEnvironment.botClientHacker <- Some hackerBattleBot
adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously

View File

@ -128,7 +128,6 @@ let hackerResult successfulHack (ctx : IDiscordContext) attacker defender (hack
do! updateEvents successfulHack attacker defender hack do! updateEvents successfulHack attacker defender hack
let! defenderMember = ctx.GetGuild().GetMemberAsync(defender.DiscordId) |> Async.AwaitTask let! defenderMember = ctx.GetGuild().GetMemberAsync(defender.DiscordId) |> Async.AwaitTask
// let failedMsg = $"Hack failed! {defender.Name} was able to mount a successful defense! You lost {lostAmount} 💰$GBT!"
let embed = Embeds.responseSuccessfulHack2 successfulHack attacker defender (ctx.GetDiscordMember()) defenderMember prizeAmount bonus hack let embed = Embeds.responseSuccessfulHack2 successfulHack attacker defender (ctx.GetDiscordMember()) defenderMember prizeAmount bonus hack
do! ctx.GetChannel().SendMessageAsync(embed) do! ctx.GetChannel().SendMessageAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask

View File

@ -3,6 +3,7 @@ module Degenz.PlayerInteractions
open System.Threading.Tasks open System.Threading.Tasks
open DSharpPlus open DSharpPlus
open DSharpPlus.Entities open DSharpPlus.Entities
open DSharpPlus.EventArgs
open Degenz.Messaging open Degenz.Messaging
open Degenz.DbService open Degenz.DbService
@ -19,8 +20,20 @@ let executePlayerAction (ctx : IDiscordContext) (dispatch : PlayerData -> Async<
let executePlayerActionNoMsg (ctx : IDiscordContext) (dispatch : PlayerData -> Async<unit>) = let executePlayerActionNoMsg (ctx : IDiscordContext) (dispatch : PlayerData -> Async<unit>) =
async { async {
let builder = DiscordInteractionResponseBuilder().AsEphemeral(true) let eventCtx = ctx.GetContext() :?> ComponentInteractionCreateEventArgs
do! ctx.Respond(InteractionResponseType.DeferredMessageUpdate, builder) |> Async.AwaitTask
let disabledButtons =
eventCtx.Message.Components
|> Seq.map (fun c -> c.Components |> Seq.cast<DiscordButtonComponent>)
|> Seq.concat
|> Seq.map (fun btn -> DiscordButtonComponent(btn.Style, btn.CustomId, btn.Label, disabled = true))
|> Seq.cast<DiscordComponent>
let builder = DiscordInteractionResponseBuilder()
.AddEmbeds(eventCtx.Message.Embeds)
.AddComponents(disabledButtons)
do! ctx.Respond(InteractionResponseType.UpdateMessage, builder) |> Async.AwaitTask
let! playerResult = tryFindPlayer (ctx.GetDiscordMember().Id) let! playerResult = tryFindPlayer (ctx.GetDiscordMember().Id)
match playerResult with match playerResult with
| Some player -> do! dispatch player | Some player -> do! dispatch player