Grab pinned embed rather than requiring a new one
This commit is contained in:
parent
b78fce3cad
commit
7bf9f7889e
@ -29,7 +29,7 @@ let sendEmbed embed (ctx : IDiscordContext) =
|
|||||||
match embed with
|
match embed with
|
||||||
| InitEmbeds.Dojo -> Trainer.sendInitialEmbed ctx
|
| InitEmbeds.Dojo -> Trainer.sendInitialEmbed ctx
|
||||||
| InitEmbeds.Whitelist -> InviteTracker.sendInitialEmbed ctx
|
| InitEmbeds.Whitelist -> InviteTracker.sendInitialEmbed ctx
|
||||||
| InitEmbeds.Slots -> SlotMachine.sendInitialEmbed ctx
|
| InitEmbeds.Slots -> SlotMachine.sendInitialEmbedFromSlashCommand ctx
|
||||||
| _ -> ()
|
| _ -> ()
|
||||||
do! Messaging.sendSimpleResponse ctx "Sent!"
|
do! Messaging.sendSimpleResponse ctx "Sent!"
|
||||||
} :> Task
|
} :> Task
|
||||||
|
@ -111,6 +111,8 @@ adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
|||||||
|
|
||||||
//stealBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
//stealBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
|
|
||||||
|
SlotMachine.sendInitialEmbedFromLaunch slotsBot
|
||||||
|
|
||||||
let rec loop areBotsRunning =
|
let rec loop areBotsRunning =
|
||||||
async {
|
async {
|
||||||
if not (File.Exists "fsharp-bots") then
|
if not (File.Exists "fsharp-bots") then
|
||||||
|
@ -32,8 +32,8 @@ let Obey = { index = 2 ; reel1Count = 3 ; reel2Count = 3 ; reel3Count = 3
|
|||||||
let AnonMask = { index = 3 ; reel1Count = 2 ; reel2Count = 2 ; reel3Count = 4 ; emojiName = "anonmask" }
|
let AnonMask = { index = 3 ; reel1Count = 2 ; reel2Count = 2 ; reel3Count = 4 ; emojiName = "anonmask" }
|
||||||
let Rat = { index = 4 ; reel1Count = 4 ; reel2Count = 4 ; reel3Count = 3 ; emojiName = "rat" }
|
let Rat = { index = 4 ; reel1Count = 4 ; reel2Count = 4 ; reel3Count = 3 ; emojiName = "rat" }
|
||||||
let Ramen = { index = 5 ; reel1Count = 5 ; reel2Count = 5 ; reel3Count = 5 ; emojiName = "ramen" }
|
let Ramen = { index = 5 ; reel1Count = 5 ; reel2Count = 5 ; reel3Count = 5 ; emojiName = "ramen" }
|
||||||
let Sushi = { index = 6 ; reel1Count = 6 ; reel2Count = 6 ; reel3Count = 3 ; emojiName = "sushi" }
|
let Sushi = { index = 6 ; reel1Count = 6 ; reel2Count = 5 ; reel3Count = 3 ; emojiName = "sushi" }
|
||||||
let Pizza = { index = 7 ; reel1Count = 0 ; reel2Count = 3 ; reel3Count = 7 ; emojiName = "pizza" }
|
let Pizza = { index = 7 ; reel1Count = 1 ; reel2Count = 3 ; reel3Count = 6 ; emojiName = "pizza" }
|
||||||
//let Alcohol = { index = 8 ; reel1Count = 1 ; reel2Count = 1 ; reel3Count = 1 ; emojiName = "alcohol" }
|
//let Alcohol = { index = 8 ; reel1Count = 1 ; reel2Count = 1 ; reel3Count = 1 ; emojiName = "alcohol" }
|
||||||
//let Circuit = { index = 9 ; reel1Count = 0 ; reel2Count = 0 ; reel3Count = 2 ; emojiName = "circuitboard" }
|
//let Circuit = { index = 9 ; reel1Count = 0 ; reel2Count = 0 ; reel3Count = 2 ; emojiName = "circuitboard" }
|
||||||
//let OldTv = { index = 10 ; reel1Count = 1 ; reel2Count = 2 ; reel3Count = 2 ; emojiName = "oldtv" }
|
//let OldTv = { index = 10 ; reel1Count = 1 ; reel2Count = 2 ; reel3Count = 2 ; emojiName = "oldtv" }
|
||||||
@ -366,9 +366,8 @@ let handleMessageCreated (_ : DiscordClient) (event : MessageCreateEventArgs) =
|
|||||||
do! event.Message.DeleteAsync()
|
do! event.Message.DeleteAsync()
|
||||||
} :> Task
|
} :> Task
|
||||||
|
|
||||||
let sendInitialEmbed (ctx : IDiscordContext) =
|
let sendEmbed channel (message : DiscordMessage option) = async {
|
||||||
let updateFn (ctx : IDiscordContext) (message : DiscordMessage option) = async {
|
printfn "SENT EMBED"
|
||||||
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelSlots)
|
|
||||||
let builder = DiscordMessageBuilder()
|
let builder = DiscordMessageBuilder()
|
||||||
let embed = DiscordEmbedBuilder()
|
let embed = DiscordEmbedBuilder()
|
||||||
embed.Title <- "Degenz Slot Machine"
|
embed.Title <- "Degenz Slot Machine"
|
||||||
@ -390,13 +389,27 @@ let sendInitialEmbed (ctx : IDiscordContext) =
|
|||||||
return Some m
|
return Some m
|
||||||
| Some bot , None ->
|
| Some bot , None ->
|
||||||
let! m = bot.SendMessageAsync(channel, builder) |> Async.AwaitTask
|
let! m = bot.SendMessageAsync(channel, builder) |> Async.AwaitTask
|
||||||
|
do! m.PinAsync() |> Async.AwaitTask
|
||||||
return Some m
|
return Some m
|
||||||
| _ -> return None
|
| _ -> return None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let sendEmbedWithLoop (channel : DiscordChannel) =
|
||||||
async {
|
async {
|
||||||
let! message = updateFn ctx None
|
let! pins = channel.GetPinnedMessagesAsync() |> Async.AwaitTask
|
||||||
|
let! message =
|
||||||
|
match pins |> Seq.toList with
|
||||||
|
| [] -> sendEmbed channel None
|
||||||
|
| msg::_ -> async.Return (Some msg)
|
||||||
while true do
|
while true do
|
||||||
do! Async.Sleep 60000
|
do! Async.Sleep 60000
|
||||||
do! updateFn ctx (message) |> Async.Ignore
|
do! sendEmbed channel (message) |> Async.Ignore
|
||||||
} |> Async.Start
|
} |> Async.Start
|
||||||
|
|
||||||
|
let sendInitialEmbedFromLaunch (client : DiscordClient) =
|
||||||
|
let channel = client.Guilds.[GuildEnvironment.guildId].GetChannel(GuildEnvironment.channelSlots)
|
||||||
|
sendEmbedWithLoop channel
|
||||||
|
|
||||||
|
let sendInitialEmbedFromSlashCommand (ctx : IDiscordContext) =
|
||||||
|
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelSlots)
|
||||||
|
sendEmbedWithLoop channel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user