module Degenz.Bot open System.Threading.Tasks open DSharpPlus open DSharpPlus.SlashCommands open Degenz open Degenz.PlayerInteractions open Degenz.HackerBattle open Degenz.Store open Emzi0767.Utilities //open Degenz.SlotMachine type EmptyGlobalCommandToAvoidFamousDuplicateSlashCommandsBug() = inherit ApplicationCommandModule () let playerInteractionsConfig = DiscordConfiguration() let hackerBattleConfig = DiscordConfiguration() let storeConfig = DiscordConfiguration() //let slotMachineConfig = DiscordConfiguration() //hackerBattleConfig.MinimumLogLevel <- Microsoft.Extensions.Logging.LogLevel.Trace //let configs = [| playerInteractionsConfig ; hackerBattleConfig ; storeConfig ; slotMachineConfig ; |] let configs = [| playerInteractionsConfig ; hackerBattleConfig ; storeConfig |] for conf in configs do conf.TokenType <- TokenType.Bot conf.Intents <- DiscordIntents.All let guild = GuildEnvironment.guildId playerInteractionsConfig.Token <- GuildEnvironment.tokenPlayerInteractions hackerBattleConfig.Token <- GuildEnvironment.tokenHackerBattle storeConfig.Token <- GuildEnvironment.tokenStore //slotMachineConfig.Token <- Environment.GetEnvironmentVariable("BOT_SLOT_MACHINE") //let playerInteractionsBot = new DiscordClient(playerInteractionsConfig) let hackerBattleBot = new DiscordClient(hackerBattleConfig) let storeBot = new DiscordClient(storeConfig) //let slotMachineBot = new DiscordClient(slotMachineConfig) //let clients = [| storeBot ; trainerBot ; hackerBattleBot ; playerInteractionsBot ; slotMachineBot |] //let clients = [| hackerBattleBot ; storeBot ; playerInteractionsBot |] let clients = [| hackerBattleBot ; storeBot |] //let sc1 = playerInteractionsBot.UseSlashCommands() let sc3 = hackerBattleBot.UseSlashCommands() let sc4 = storeBot.UseSlashCommands() //let sc5 = slotMachineBot.UseSlashCommands() //sc1.RegisterCommands(guild); sc3.RegisterCommands(guild); sc4.RegisterCommands(guild); //sc5.RegisterCommands(guild); hackerBattleBot.add_ComponentInteractionCreated(AsyncEventHandler(HackerBattle.handleButtonEvent)) storeBot.add_ComponentInteractionCreated(AsyncEventHandler(Store.handleSellButtonEvents)) let asdf (_ : DiscordClient) (event : DSharpPlus.EventArgs.InteractionCreateEventArgs) = async { printfn "%A" event.Interaction.Type match event.Interaction.Type with | InteractionType.AutoComplete -> printfn "%A" event.Interaction.Data.Options let builder = DSharpPlus.Entities.DiscordInteractionResponseBuilder() builder.AddAutoCompleteChoice(DSharpPlus.Entities.DiscordAutoCompleteChoice("Choice 1", "What does this represent?")) |> ignore do! event.Interaction.CreateResponseAsync(InteractionResponseType.AutoCompleteResult, builder) |> Async.AwaitTask | _ -> return () } |> Async.StartAsTask :> Task //hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf)) let run (client : DiscordClient) = async { do! client.ConnectAsync () |> Async.AwaitTask } //Trainer.sendInitialEmbed hackerBattleBot clients |> Array.map run |> Array.toSeq |> Async.Sequential |> Async.RunSynchronously |> ignore Task.Delay(-1) |> Async.AwaitTask |> Async.RunSynchronously