Maybe final form of embeds, add embed refresh with current jackpot
This commit is contained in:
parent
b91bf0a0d2
commit
303b32e341
@ -167,12 +167,9 @@ let handlePrizeTable (ctx : IDiscordContext) =
|
|||||||
let embed = DiscordEmbedBuilder()
|
let embed = DiscordEmbedBuilder()
|
||||||
match guildEmojis , anyEmoji with
|
match guildEmojis , anyEmoji with
|
||||||
| Some emojis , Some any ->
|
| Some emojis , Some any ->
|
||||||
let folder acc elem =
|
let folder (i,acc,b) elem =
|
||||||
let s1,s2,s3,prize = elem
|
let s1,s2,s3,prize = elem
|
||||||
let prizeTxt =
|
let prizeTxt = match prize with Money m -> $"**{m}** $GBT" | Jackpot -> $"**JACKPOT**"
|
||||||
match prize with
|
|
||||||
| Money m -> $"**{m}** $GBT"
|
|
||||||
| Jackpot -> $"**JACKPOT**"
|
|
||||||
let line =
|
let line =
|
||||||
match s1 , s2 , s3 with
|
match s1 , s2 , s3 with
|
||||||
| Symbol s1' , Symbol s2' , Symbol s3' ->
|
| Symbol s1' , Symbol s2' , Symbol s3' ->
|
||||||
@ -182,15 +179,21 @@ let handlePrizeTable (ctx : IDiscordContext) =
|
|||||||
| Symbol s1' , Any , Any ->
|
| Symbol s1' , Any , Any ->
|
||||||
$"{Formatter.Emoji(emojis.[s1'.emojiName])}{Formatter.Emoji(any)}{Formatter.Emoji(any)}"
|
$"{Formatter.Emoji(emojis.[s1'.emojiName])}{Formatter.Emoji(any)}{Formatter.Emoji(any)}"
|
||||||
| _ -> ""
|
| _ -> ""
|
||||||
$"{acc}\n{line} ⠀⠀|⠀⠀ {prizeTxt}"
|
let text =
|
||||||
|
if prizeTxt.Contains("100") then
|
||||||
|
acc
|
||||||
|
else
|
||||||
|
$"{acc}\n{line} | {prizeTxt}"
|
||||||
|
(i + 1) , text , ( b || prizeTxt.Contains("100") )
|
||||||
let! jackpot = getJackpotAmount ()
|
let! jackpot = getJackpotAmount ()
|
||||||
let rows = Array.fold folder "" prizeTable
|
let _ , rows , _ = Array.fold folder (0, "", false) prizeTable
|
||||||
embed.Color <- DiscordColor.Green
|
embed.Color <- DiscordColor.Green
|
||||||
embed.Title <- $"CURRENT JACKPOT: **{jackpot}** `💰` $GBT"
|
embed.Title <- $"CURRENT JACKPOT: `{jackpot} 💰 $GBT`"
|
||||||
embed.Description <- $"Current Jackpot At: **{jackpot}** $GBT\n\n**Combo** ⠀⠀⠀⠀⠀⠀⠀ **Prize**\n{rows}"
|
embed.Description <- embed.Description + $"\n\n**PRIZE TABLE **\n{rows}\n\n**ANY 3** | **100** $GBT"
|
||||||
do! ctx.FollowUp(DiscordFollowupMessageBuilder().AsEphemeral().AddEmbed(embed))
|
do! ctx.FollowUp(DiscordFollowupMessageBuilder().AsEphemeral().AddEmbed(embed))
|
||||||
do! Analytics.prizeTableViewed (ctx.GetDiscordMember())
|
do! Analytics.prizeTableViewed (ctx.GetDiscordMember())
|
||||||
| _ , _ -> return ()
|
| _ , _ -> return ()
|
||||||
|
|
||||||
} :> Task
|
} :> Task
|
||||||
|
|
||||||
let spinEmojis (builder : DiscordFollowupMessageBuilder) (results : SlotSymbol array) (itx : DiscordInteraction) =
|
let spinEmojis (builder : DiscordFollowupMessageBuilder) (results : SlotSymbol array) (itx : DiscordInteraction) =
|
||||||
@ -328,54 +331,36 @@ let handleGuildDownloadCompleted (_ : DiscordClient) (event : GuildDownloadCompl
|
|||||||
} :> Task
|
} :> Task
|
||||||
|
|
||||||
let sendInitialEmbed (ctx : IDiscordContext) =
|
let sendInitialEmbed (ctx : IDiscordContext) =
|
||||||
|
let updateFn (ctx : IDiscordContext) (message : DiscordMessage option) = async {
|
||||||
|
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelSlots)
|
||||||
|
let builder = DiscordMessageBuilder()
|
||||||
|
let embed = DiscordEmbedBuilder()
|
||||||
|
embed.Title <- "Degenz Slot Machine"
|
||||||
|
embed.ImageUrl <- "https://s7.gifyu.com/images/ezgif.com-gif-maker-268ecb6e4d28bd55a0.gif"
|
||||||
|
embed.Description <- "Want to try your luck?"
|
||||||
|
let! jackpot = getJackpotAmount ()
|
||||||
|
embed.Title <- $"CURRENT JACKPOT: `{jackpot} 💰 $GBT`"
|
||||||
|
|
||||||
|
builder.AddEmbed(embed) |> ignore
|
||||||
|
|
||||||
|
let button1 = DiscordButtonComponent(ButtonStyle.Success, $"spin-1x", $"🎰 Bet {PlayPricex1} $GBT") :> DiscordComponent
|
||||||
|
let button2 = DiscordButtonComponent(ButtonStyle.Success, $"spin-2x", $"🎰 Bet {PlayPricex2} $GBT") :> DiscordComponent
|
||||||
|
let button3 = DiscordButtonComponent(ButtonStyle.Success, $"spin-3x", $"🎰 Bet {PlayPricex3} $GBT") :> DiscordComponent
|
||||||
|
let button4 = DiscordButtonComponent(ButtonStyle.Primary, $"prizes", $"Prize Table") :> DiscordComponent
|
||||||
|
builder.AddComponents([| button1 ; button2 ; button3 ; button4 |]) |> ignore
|
||||||
|
match GuildEnvironment.botClientSlots, message with
|
||||||
|
| _ , Some m ->
|
||||||
|
let! _ = m.ModifyAsync(builder) |> Async.AwaitTask
|
||||||
|
return Some m
|
||||||
|
| Some bot , None ->
|
||||||
|
let! m = bot.SendMessageAsync(channel, builder) |> Async.AwaitTask
|
||||||
|
return Some m
|
||||||
|
| _ -> return None
|
||||||
|
}
|
||||||
|
|
||||||
async {
|
async {
|
||||||
try
|
let! message = updateFn ctx None
|
||||||
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelSlots)
|
while true do
|
||||||
let builder = DiscordMessageBuilder()
|
do! Async.Sleep 60000
|
||||||
let embed = DiscordEmbedBuilder()
|
do! updateFn ctx (message) |> Async.Ignore
|
||||||
embed.Title <- "Degenz Slot Machine"
|
} |> Async.Start
|
||||||
embed.ImageUrl <- "https://s7.gifyu.com/images/ezgif.com-gif-maker-268ecb6e4d28bd55a0.gif"
|
|
||||||
|
|
||||||
match guildEmojis , anyEmoji with
|
|
||||||
| Some emojis , Some any ->
|
|
||||||
let folder (i,acc,b) elem =
|
|
||||||
let s1,s2,s3,prize = elem
|
|
||||||
let prizeTxt = match prize with Money m -> $"**{m}** $GBT" | Jackpot -> $"**JACKPOT**"
|
|
||||||
let line =
|
|
||||||
match s1 , s2 , s3 with
|
|
||||||
| Symbol s1' , Symbol s2' , Symbol s3' ->
|
|
||||||
$"{Formatter.Emoji(emojis.[s1'.emojiName])}{Formatter.Emoji(emojis.[s2'.emojiName])}{Formatter.Emoji(emojis.[s3'.emojiName])}"
|
|
||||||
| Symbol s1' , Symbol s2' , Any ->
|
|
||||||
$"{Formatter.Emoji(emojis.[s1'.emojiName])}{Formatter.Emoji(emojis.[s2'.emojiName])}{Formatter.Emoji(any)}"
|
|
||||||
| Symbol s1' , Any , Any ->
|
|
||||||
$"{Formatter.Emoji(emojis.[s1'.emojiName])}{Formatter.Emoji(any)}{Formatter.Emoji(any)}"
|
|
||||||
| _ -> ""
|
|
||||||
let text =
|
|
||||||
if prizeTxt.Contains("100") then
|
|
||||||
acc
|
|
||||||
else
|
|
||||||
$"{acc}\n{line} | {prizeTxt}"
|
|
||||||
(i + 1) , text , ( b || prizeTxt.Contains("100") )
|
|
||||||
let! jackpot = getJackpotAmount ()
|
|
||||||
let _ , rows , _ = Array.fold folder (0, "", false) prizeTable
|
|
||||||
embed.Color <- DiscordColor.Green
|
|
||||||
// embed.Title <- "Degenz Slots Prize Table"
|
|
||||||
// embed.Description <- $"Current Jackpot At: **{jackpot}** $GBT\n\n"
|
|
||||||
embed.Title <- $"CURRENT JACKPOT: `{jackpot} 💰 $GBT`"
|
|
||||||
embed.Description <- embed.Description + $"\n\n**PRIZE TABLE **\n{rows}\n\n**ANY 3** | **100** $GBT"
|
|
||||||
| _ , _ -> return ()
|
|
||||||
|
|
||||||
builder.AddEmbed(embed) |> ignore
|
|
||||||
|
|
||||||
let button1 = DiscordButtonComponent(ButtonStyle.Success, $"spin-1x", $"🎰 Bet {PlayPricex1} $GBT") :> DiscordComponent
|
|
||||||
let button2 = DiscordButtonComponent(ButtonStyle.Success, $"spin-2x", $"🎰 Bet {PlayPricex2} $GBT") :> DiscordComponent
|
|
||||||
let button3 = DiscordButtonComponent(ButtonStyle.Success, $"spin-3x", $"🎰 Bet {PlayPricex3} $GBT") :> DiscordComponent
|
|
||||||
// let button4 = DiscordButtonComponent(ButtonStyle.Primary, $"prizes", $"Prize Table") :> DiscordComponent
|
|
||||||
// builder.AddComponents([| button1 ; button2 ; button3 ; button4 |]) |> ignore
|
|
||||||
builder.AddComponents([| button1 ; button2 ; button3 |]) |> ignore
|
|
||||||
do! GuildEnvironment.botClientSlots.Value.SendMessageAsync(channel, builder)
|
|
||||||
|> Async.AwaitTask
|
|
||||||
|> Async.Ignore
|
|
||||||
with e ->
|
|
||||||
printfn $"Error trying to get channel Training Dojo\n\n{e.Message}"
|
|
||||||
} |> Async.RunSynchronously
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user