Basic bot pausing

This commit is contained in:
Joseph Ferano 2022-03-05 21:52:04 +07:00
parent eba589746b
commit 5b962bac2e

View File

@ -1,5 +1,7 @@
module Degenz.Bot module Degenz.Bot
open System.IO
open System.IO.Pipes
open System.Threading.Tasks open System.Threading.Tasks
open DSharpPlus open DSharpPlus
open DSharpPlus.SlashCommands open DSharpPlus.SlashCommands
@ -88,28 +90,41 @@ GuildEnvironment.botUserHackerBattle <- Some hackerBattleBot.CurrentUser
storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
GuildEnvironment.botUserArmory <- Some storeBot.CurrentUser GuildEnvironment.botUserArmory <- Some storeBot.CurrentUser
stealBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously //stealBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
//inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously //inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
//let channel = hackerBattleBot.GetChannelAsync(1234uL) |> Async.AwaitTask |> Async.RunSynchronously
//channel.invi
let rec loop areBotsRunning =
async {
if not (File.Exists "fsharp-bots") then
use file = File.Create "fsharp-bots"
file.Flush()
let! file = File.ReadAllTextAsync("fsharp-bots") |> Async.AwaitTask
//async { let! ran =
// let! user = hackerBattleBot.GetUserAsync(GuildEnvironment.botIdHackerBattle) |> Async.AwaitTask async {
// if user <> null then if areBotsRunning && file.StartsWith "kill" then
// GuildEnvironment.botUserHackerBattle <- Some user printfn "Disconnecting bots"
// return () do! hackerBattleBot.DisconnectAsync() |> Async.AwaitTask
//} |> Async.RunSynchronously do! storeBot.DisconnectAsync() |> Async.AwaitTask
return false
elif not areBotsRunning && not (file.StartsWith "kill") then
printfn "Reconnecting bots"
do! hackerBattleBot.ConnectAsync() |> Async.AwaitTask
do! storeBot.ConnectAsync() |> Async.AwaitTask
return true
else
return areBotsRunning
}
do! Async.Sleep 3000
return! loop (ran)
}
Async.Start (loop true)
//async {
// let! user = storeBot.GetUserAsync(GuildEnvironment.botIdHackerBattle) |> Async.AwaitTask
// if user <> null then
// GuildEnvironment.botUserHackerBattle <- Some user
// return ()
//} |> Async.RunSynchronously
Task.Delay(-1) Task.Delay(-1)
|> Async.AwaitTask |> Async.AwaitTask