Clean up a little
This commit is contained in:
parent
0b5ada0e90
commit
6db2a23fc3
@ -75,17 +75,16 @@ let slotsImages =
|
|||||||
"./images/sushi.png" |]
|
"./images/sushi.png" |]
|
||||||
|> Array.map (fun path -> ( Path.GetFileNameWithoutExtension(path) , File.OpenRead(path) ))
|
|> Array.map (fun path -> ( Path.GetFileNameWithoutExtension(path) , File.OpenRead(path) ))
|
||||||
|
|
||||||
let payTable = [|
|
let payTable = [| |]
|
||||||
|]
|
|
||||||
|
|
||||||
let PlayPrice = 10<GBT>
|
let PlayPrice = 10<GBT>
|
||||||
let twoOfAKindPrize = 100<GBT>
|
let twoOfAKindPrize = 100<GBT>
|
||||||
let threeOfAKindPrize = 1000<GBT>
|
let threeOfAKindPrize = 1000<GBT>
|
||||||
let fourOfAKindPrize = 10000<GBT>
|
let sleepTime = 1000
|
||||||
|
|
||||||
let spinEmbeds (results : int array) (ctx : IDiscordContext) =
|
let spinEmbeds (results : int array) (ctx : IDiscordContext) =
|
||||||
async {
|
async {
|
||||||
let iCtx = ctx.GetInteraction()
|
let itx = ctx.GetInteraction()
|
||||||
|
|
||||||
let builder = DiscordFollowupMessageBuilder()
|
let builder = DiscordFollowupMessageBuilder()
|
||||||
|
|
||||||
@ -96,62 +95,61 @@ let spinEmbeds (results : int array) (ctx : IDiscordContext) =
|
|||||||
let e2 = DiscordEmbedBuilder().WithImageUrl(slots.[results[1]])
|
let e2 = DiscordEmbedBuilder().WithImageUrl(slots.[results[1]])
|
||||||
let e3 = DiscordEmbedBuilder().WithImageUrl(slots.[results[2]])
|
let e3 = DiscordEmbedBuilder().WithImageUrl(slots.[results[2]])
|
||||||
|
|
||||||
let! followUp = iCtx.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
let! followUp = itx.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let! _ = iCtx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ])) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ])) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let! _ = iCtx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ])) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ])) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let! _ = iCtx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ; e3.Build() ])) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ; e3.Build() ])) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let! _ = iCtx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ; e3.Build() ])) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().AddEmbeds([ e1.Build() ; e2.Build() ; e3.Build() ])) |> Async.AwaitTask
|
||||||
|
|
||||||
return ()
|
return ()
|
||||||
}
|
}
|
||||||
|
|
||||||
let spinEmojis (results : int array) (ctx : IDiscordContext) =
|
let spinEmojis (results : int array) (ctx : IDiscordContext) =
|
||||||
async {
|
async {
|
||||||
let inter = ctx.GetInteraction()
|
let itx = ctx.GetInteraction()
|
||||||
let emojis = ctx.GetGuild().Emojis |> Seq.map (fun kvp -> kvp.Value) |> Seq.toArray
|
let emojis = ctx.GetGuild().Emojis |> Seq.map (fun kvp -> kvp.Value) |> Seq.toArray
|
||||||
let builder = DiscordFollowupMessageBuilder()
|
let builder = DiscordFollowupMessageBuilder()
|
||||||
|
|
||||||
builder.Content <- "Spinning!"
|
builder.Content <- "Spinning!"
|
||||||
builder.IsEphemeral <- true
|
builder.IsEphemeral <- true
|
||||||
let! followUp = inter.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
let! followUp = itx.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
||||||
|
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let content = $"{Formatter.Emoji(emojis.[results.[0]])}"
|
let content = $"{Formatter.Emoji(emojis.[results.[0]])}"
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let content = $"{Formatter.Emoji(emojis.[results.[0]])}{Formatter.Emoji(emojis.[results.[1]])}"
|
let content = $"{Formatter.Emoji(emojis.[results.[0]])}{Formatter.Emoji(emojis.[results.[1]])}"
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let content = $"{Formatter.Emoji(emojis.[results.[0]])}{Formatter.Emoji(emojis.[results.[1]])}{Formatter.Emoji(emojis.[results.[2]])}"
|
let content = $"{Formatter.Emoji(emojis.[results.[0]])}{Formatter.Emoji(emojis.[results.[1]])}{Formatter.Emoji(emojis.[results.[2]])}"
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder().WithContent(content)) |> Async.AwaitTask
|
||||||
return ()
|
return ()
|
||||||
}
|
}
|
||||||
|
|
||||||
let spinFiles (results : int array) (ctx : IDiscordContext) =
|
let spinFiles (results : int array) (ctx : IDiscordContext) =
|
||||||
async {
|
async {
|
||||||
let inter = ctx.GetInteraction()
|
let itx = ctx.GetInteraction()
|
||||||
let emojis = ctx.GetGuild().Emojis |> Seq.map (fun kvp -> kvp.Value) |> Seq.toArray
|
|
||||||
let builder = DiscordFollowupMessageBuilder()
|
let builder = DiscordFollowupMessageBuilder()
|
||||||
|
|
||||||
builder.Content <- "Spinning!"
|
builder.Content <- "Spinning!"
|
||||||
builder.IsEphemeral <- true
|
builder.IsEphemeral <- true
|
||||||
let! followUp = inter.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
let! followUp = itx.CreateFollowupMessageAsync(builder) |> Async.AwaitTask
|
||||||
|
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let ( name , stream ) = slotsImages.[results.[0]]
|
let ( name , stream ) = slotsImages.[results.[0]]
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
||||||
.AddFile(name + "1.png", stream)) |> Async.AwaitTask
|
.AddFile(name + "1.png", stream)) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let ( name , stream ) = slotsImages.[results.[1]]
|
let ( name , stream ) = slotsImages.[results.[1]]
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
||||||
.AddFile(name + "2.png", stream)) |> Async.AwaitTask
|
.AddFile(name + "2.png", stream)) |> Async.AwaitTask
|
||||||
do! Async.Sleep 1000
|
do! Async.Sleep sleepTime
|
||||||
let ( name , stream ) = slotsImages.[results.[2]]
|
let ( name , stream ) = slotsImages.[results.[2]]
|
||||||
let! _ = inter.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
let! _ = itx.EditFollowupMessageAsync(followUp.Id, DiscordWebhookBuilder()
|
||||||
.AddFile(name + "3.png", stream)) |> Async.AwaitTask
|
.AddFile(name + "3.png", stream)) |> Async.AwaitTask
|
||||||
return ()
|
return ()
|
||||||
}
|
}
|
||||||
@ -163,7 +161,6 @@ let spin spinType (ctx : IDiscordContext) =
|
|||||||
let results = [| random.Next(0, slotCount) ; random.Next(0, slotCount) ; random.Next(0, slotCount) |]
|
let results = [| random.Next(0, slotCount) ; random.Next(0, slotCount) ; random.Next(0, slotCount) |]
|
||||||
|
|
||||||
let winConditions = (results.[0] = results.[1] && results.[0] = results.[2])
|
let winConditions = (results.[0] = results.[1] && results.[0] = results.[2])
|
||||||
|| (results.[0] <> results.[1] && results.[1] <> results.[2] && results.[0] <> results.[2])
|
|
||||||
|
|
||||||
if winConditions
|
if winConditions
|
||||||
then do! DbService.updatePlayerCurrency twoOfAKindPrize player |> Async.Ignore
|
then do! DbService.updatePlayerCurrency twoOfAKindPrize player |> Async.Ignore
|
||||||
@ -175,24 +172,17 @@ let spin spinType (ctx : IDiscordContext) =
|
|||||||
| "Files" -> do! spinFiles results ctx
|
| "Files" -> do! spinFiles results ctx
|
||||||
| _ -> ()
|
| _ -> ()
|
||||||
|
|
||||||
|
do! Async.Sleep sleepTime
|
||||||
|
let builder = DiscordFollowupMessageBuilder()
|
||||||
|
builder.IsEphemeral <- true
|
||||||
let embed4 = DiscordEmbedBuilder()
|
let embed4 = DiscordEmbedBuilder()
|
||||||
embed4.Title <- "Slot Machine"
|
embed4.Title <- "Slot Machine"
|
||||||
embed4.Description <- "You hit the jackpot!"
|
if winConditions then
|
||||||
|
embed4.Description <- $"You win {threeOfAKindPrize} GBT!"
|
||||||
// if winConditions then
|
else
|
||||||
// do! Async.Sleep sleepTime
|
builder.Content <- "Better luck next time! You paid 1 $GBT"
|
||||||
// let builder = DiscordFollowupMessageBuilder()
|
builder.AddEmbed(embed4) |> ignore
|
||||||
// builder.Content <- "You win 10 GBT!"
|
do! ctx.FollowUp(builder) |> Async.AwaitTask |> Async.Ignore
|
||||||
// do! ctx.FollowUp(builder)
|
|
||||||
// |> Async.AwaitTask
|
|
||||||
// |> Async.Ignore
|
|
||||||
// else
|
|
||||||
// do! Async.Sleep sleepTime
|
|
||||||
// let builder = DiscordFollowupMessageBuilder()
|
|
||||||
// builder.Content <- "You lose 0.5 GBT! Try your luck again!"
|
|
||||||
// do! ctx.FollowUp(builder)
|
|
||||||
// |> Async.AwaitTask
|
|
||||||
// |> Async.Ignore
|
|
||||||
|
|
||||||
return ()
|
return ()
|
||||||
})
|
})
|
||||||
@ -231,21 +221,3 @@ let sendInitialEmbed (ctx : IDiscordContext) =
|
|||||||
with e ->
|
with e ->
|
||||||
printfn $"Error trying to get channel Training Dojo\n\n{e.Message}"
|
printfn $"Error trying to get channel Training Dojo\n\n{e.Message}"
|
||||||
} |> Async.RunSynchronously
|
} |> Async.RunSynchronously
|
||||||
|
|
||||||
//type SlotMachine() =
|
|
||||||
// inherit ApplicationCommandModule ()
|
|
||||||
//
|
|
||||||
// let enforceChannel (ctx : IDiscordContext) (spinFn : IDiscordContext -> Task) =
|
|
||||||
// match ctx.GetChannel().Id with
|
|
||||||
// | id when id = GuildEnvironment.channelSlots -> spinFn ctx
|
|
||||||
// | _ ->
|
|
||||||
// task {
|
|
||||||
// let msg = $"You must go to <#{GuildEnvironment.channelSlots}> channel to play the slots!"
|
|
||||||
// do! Messaging.sendSimpleResponse ctx msg
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// [<SlashCommand("spin", "Want to try your luck?")>]
|
|
||||||
// member this.Spin (ctx : InteractionContext) = enforceChannel (DiscordInteractionContext ctx) spinCommand
|
|
||||||
//
|
|
||||||
// [<SlashCommand("spin-simple", "Want to try your luck?")>]
|
|
||||||
// member this.SpinSimple (ctx : InteractionContext) = enforceChannel (DiscordInteractionContext ctx) spin
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user