From f7814b8f5cacf40149defcba6f88363bb925a992 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Tue, 21 Jun 2022 13:04:11 +0700 Subject: [PATCH] Operational --- Bot/Games/HackerBattle.fs | 37 +++++++++++------------------ Bot/Games/SlotMachine.fs | 35 +++++++++++----------------- Bot/Games/Store.fs | 45 ++++++++++++++--------------------- Bot/Whitelist.fs | 49 ++++++++++++++++----------------------- 4 files changed, 65 insertions(+), 101 deletions(-) diff --git a/Bot/Games/HackerBattle.fs b/Bot/Games/HackerBattle.fs index d80ef1a..4b75c96 100644 --- a/Bot/Games/HackerBattle.fs +++ b/Bot/Games/HackerBattle.fs @@ -280,29 +280,20 @@ let arsenal (ctx : IDiscordContext) = }) let handleButtonEvent _ (event : ComponentInteractionCreateEventArgs) = - let ctx = DiscordEventContext event :> IDiscordContext - task { - let builder = DiscordInteractionResponseBuilder() - builder.IsEphemeral <- true - builder.Content <- $"🚀 __Mint Date:__ June 20th 6:30 UTC " - do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask - } : Task - -//let handleButtonEvent _ (event : ComponentInteractionCreateEventArgs) = -// let eventCtx = DiscordEventContext event :> IDiscordContext -// match event.Id with -// | id when id.StartsWith("Attack") -> handleAttack eventCtx -// | id when id.StartsWith("Defend") -> handleDefense eventCtx -// | id when id.StartsWith("Trainer") -> Trainer.handleButtonEvent eventCtx |> Async.StartAsTask :> Task -// | id when id.StartsWith("Steal") -> Thief.handleSteal eventCtx -// | id when id.StartsWith("RPS") -> RockPaperScissors.handleRPS eventCtx -// | _ -> -// task { -// let builder = DiscordInteractionResponseBuilder() -// builder.IsEphemeral <- true -// builder.Content <- $"Incorrect Action identifier {eventCtx.GetInteractionId()}" -// do! eventCtx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask -// } + let eventCtx = DiscordEventContext event :> IDiscordContext + match event.Id with + | id when id.StartsWith("Attack") -> handleAttack eventCtx + | id when id.StartsWith("Defend") -> handleDefense eventCtx + | id when id.StartsWith("Trainer") -> Trainer.handleButtonEvent eventCtx |> Async.StartAsTask :> Task + | id when id.StartsWith("Steal") -> Thief.handleSteal eventCtx + | id when id.StartsWith("RPS") -> RockPaperScissors.handleRPS eventCtx + | _ -> + task { + let builder = DiscordInteractionResponseBuilder() + builder.IsEphemeral <- true + builder.Content <- $"Incorrect Action identifier {eventCtx.GetInteractionId()}" + do! eventCtx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask + } let handleMessageCreated _ (event : MessageCreateEventArgs) = task { diff --git a/Bot/Games/SlotMachine.fs b/Bot/Games/SlotMachine.fs index 143887d..fcefac4 100644 --- a/Bot/Games/SlotMachine.fs +++ b/Bot/Games/SlotMachine.fs @@ -320,28 +320,19 @@ let spin multiplier (ctx : IDiscordContext) = }) let handleButton _ (event : ComponentInteractionCreateEventArgs) = - let ctx = DiscordEventContext event :> IDiscordContext - task { - let builder = DiscordInteractionResponseBuilder() - builder.IsEphemeral <- true - builder.Content <- $"🚀 __Mint Date:__ June 20th 6:30 UTC " - do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask - } : Task - -//let handleButton _ (event : ComponentInteractionCreateEventArgs) = -// let ctx = DiscordEventContext event -// match event.Id with -// | "spin-1x" -> spin 1 ctx -// | "spin-2x" -> spin 2 ctx -// | "spin-3x" -> spin 3 ctx -// | "prizes" -> handlePrizeTable ctx -// | _ -> -// printfn "Wrong Spin ID" -// Task.CompletedTask -// |> Async.AwaitTask -// |> Async.Start -// Task.CompletedTask -// + let ctx = DiscordEventContext event + match event.Id with + | "spin-1x" -> spin 1 ctx + | "spin-2x" -> spin 2 ctx + | "spin-3x" -> spin 3 ctx + | "prizes" -> handlePrizeTable ctx + | _ -> + printfn "Wrong Spin ID" + Task.CompletedTask + |> Async.AwaitTask + |> Async.Start + Task.CompletedTask + let handleMessageCreated _ (event : MessageCreateEventArgs) = task { if event.Channel.Id = GuildEnvironment.channelSlots && event.Author.Id <> GuildEnvironment.botClientSlots.Value.CurrentUser.Id then diff --git a/Bot/Games/Store.fs b/Bot/Games/Store.fs index 91855d3..0e360c6 100644 --- a/Bot/Games/Store.fs +++ b/Bot/Games/Store.fs @@ -438,33 +438,24 @@ let handleJpegEvents _ (event : ComponentInteractionCreateEventArgs) = let handleStoreEvents _ (event : ComponentInteractionCreateEventArgs) = let ctx = DiscordEventContext event :> IDiscordContext - task { - let builder = DiscordInteractionResponseBuilder() - builder.IsEphemeral <- true - builder.Content <- $"🚀 __Mint Date:__ June 20th 6:30 UTC " - do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask - } : Task - -//let handleStoreEvents _ (event : ComponentInteractionCreateEventArgs) = -// let ctx = DiscordEventContext event :> IDiscordContext -// let id = ctx.GetInteractionId() -// let itemId = id.Split("-").[1] -// let storeId = id.Split("-").[2] -// match id with -// | id when id.StartsWith("Buy") -> handleBuyItem (fun _ -> Task.CompletedTask) ctx itemId -// | id when id.StartsWith("Sell") -> handleSell ctx itemId -// | id when id.StartsWith("ShowHacks") -> buy storeId (Some ItemType.Hack) ctx -// | id when id.StartsWith("ShowShields") -> buy storeId (Some ItemType.Shield) ctx -// | _ -> -// task { -// let builder = DiscordInteractionResponseBuilder() -// builder.IsEphemeral <- true -// builder.Content <- $"Incorrect Action identifier {id}" -// do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask -// } -// |> Async.AwaitTask -// |> Async.Start -// Task.CompletedTask + let id = ctx.GetInteractionId() + let itemId = id.Split("-").[1] + let storeId = id.Split("-").[2] + match id with + | id when id.StartsWith("Buy") -> handleBuyItem (fun _ -> Task.CompletedTask) ctx itemId + | id when id.StartsWith("Sell") -> handleSell ctx itemId + | id when id.StartsWith("ShowHacks") -> buy storeId (Some ItemType.Hack) ctx + | id when id.StartsWith("ShowShields") -> buy storeId (Some ItemType.Shield) ctx + | _ -> + task { + let builder = DiscordInteractionResponseBuilder() + builder.IsEphemeral <- true + builder.Content <- $"Incorrect Action identifier {id}" + do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask + } + |> Async.AwaitTask + |> Async.Start + Task.CompletedTask let sendBackalleyEmbed (ctx : IDiscordContext) = async { diff --git a/Bot/Whitelist.fs b/Bot/Whitelist.fs index 93c5127..d9d7a37 100644 --- a/Bot/Whitelist.fs +++ b/Bot/Whitelist.fs @@ -60,35 +60,26 @@ let grantWhitelistRole isOg (ctx : IDiscordContext) = let handleButtonEvent _ (event : ComponentInteractionCreateEventArgs) = let ctx = DiscordEventContext event :> IDiscordContext - task { - let builder = DiscordInteractionResponseBuilder() - builder.IsEphemeral <- true - builder.Content <- $"🚀 __Mint Date:__ June 20th 6:30 UTC " - do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask - } : Task - -//let handleButtonEvent _ (event : ComponentInteractionCreateEventArgs) = -// let ctx = DiscordEventContext event :> IDiscordContext -// match event.Id with -// | id when id.StartsWith("GimmeWhitelist") -> Store.buy "WHITELIST" None ctx -// | id when id.StartsWith("Buy") -> -// task { -// let id = ctx.GetInteractionId() -// let itemId = id.Split("-").[1] -// let dispatch ctx = grantWhitelistRole (itemId = "WHITEOG") ctx -// -// do! Store.handleBuyItem dispatch ctx itemId -// } :> Task -// | id when id.StartsWith("CreateGuildInvite") -> InviteTracker.handleCreateInvite ctx -// | id when id.StartsWith("ShowRecruited") -> InviteTracker.getInvitedUsersForId (ctx.GetDiscordMember()) ctx -// | id when id.StartsWith("WalletStatus") -> InviteTracker.showWalletStatus ctx -// | _ -> -// task { -// let builder = DiscordInteractionResponseBuilder() -// builder.IsEphemeral <- true -// builder.Content <- $"Incorrect Action identifier {ctx.GetInteractionId()}" -// do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask -// } + match event.Id with + | id when id.StartsWith("GimmeWhitelist") -> Store.buy "WHITELIST" None ctx + | id when id.StartsWith("Buy") -> + task { + let id = ctx.GetInteractionId() + let itemId = id.Split("-").[1] + let dispatch ctx = grantWhitelistRole (itemId = "WHITEOG") ctx + + do! Store.handleBuyItem dispatch ctx itemId + } :> Task + | id when id.StartsWith("CreateGuildInvite") -> InviteTracker.handleCreateInvite ctx + | id when id.StartsWith("ShowRecruited") -> InviteTracker.getInvitedUsersForId (ctx.GetDiscordMember()) ctx + | id when id.StartsWith("WalletStatus") -> InviteTracker.showWalletStatus ctx + | _ -> + task { + let builder = DiscordInteractionResponseBuilder() + builder.IsEphemeral <- true + builder.Content <- $"Incorrect Action identifier {ctx.GetInteractionId()}" + do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask + } let setCurrentWhitelistStock amount (ctx : IDiscordContext) = task {