Change the messaging if it's for whitelist

This commit is contained in:
Joseph Ferano 2022-03-22 22:05:59 +07:00
parent 6f88df1953
commit 45de35bd39

View File

@ -120,7 +120,7 @@ let getInvitedUsers userId =
|> Sql.executeAsync (fun read -> read.string "discord_id" |> uint64) |> Sql.executeAsync (fun read -> read.string "discord_id" |> uint64)
|> Async.AwaitTask |> Async.AwaitTask
let createGuildInvite (ctx : IDiscordContext) = let createGuildInvite (ctx : IDiscordContext) showWhitelistReward =
task { task {
let builder = DiscordInteractionResponseBuilder().AsEphemeral(true) let builder = DiscordInteractionResponseBuilder().AsEphemeral(true)
do! ctx.Respond(InteractionResponseType.DeferredChannelMessageWithSource, builder) do! ctx.Respond(InteractionResponseType.DeferredChannelMessageWithSource, builder)
@ -137,10 +137,17 @@ let createGuildInvite (ctx : IDiscordContext) =
printfn "%A" ex.Message printfn "%A" ex.Message
() ()
let invitesRequired = 5
let rewardMsg =
if showWhitelistReward then
$"**⏀ | Your Mission:**\nRecruit {invitesRequired} Degenz into Beautopia©.\n\n" +
$"**⌼ | Your Reward:**\nGet awarded **Whitelist**."
else
$"**⏀ | Your Mission:**\nCopy the link & share it with Degenz you want to `/recruit`.\n\n" +
$"**⌼ | Your Reward:**\n`Earn {InviteRewardAmount} $GBT` 💰 for every Degen you've `/recruited`."
let header = let header =
DiscordEmbedBuilder() DiscordEmbedBuilder()
.WithDescription($"**⏀ | Your Mission:**\nCopy the link & share it with Degenz you want to `/recruit`.\n\n" + .WithDescription(rewardMsg)
$"**⌼ | Your Reward:**\n`Earn {InviteRewardAmount} $GBT` 💰 for every Degen you've `/recruited`.")
.WithImageUrl("https://pbs.twimg.com/profile_banners/1449270642340089856/1640071520/1500x500") .WithImageUrl("https://pbs.twimg.com/profile_banners/1449270642340089856/1640071520/1500x500")
.WithTitle("Recruitment") .WithTitle("Recruitment")
@ -157,7 +164,7 @@ let createGuildInvite (ctx : IDiscordContext) =
.AsEphemeral(true) .AsEphemeral(true)
do! ctx.FollowUp(msg) do! ctx.FollowUp(msg)
} } :> Task
let listServerInvites (ctx : IDiscordContext) = task { let listServerInvites (ctx : IDiscordContext) = task {
let! invites = ctx.GetGuild().GetInvitesAsync() let! invites = ctx.GetGuild().GetInvitesAsync()
@ -256,7 +263,7 @@ let sendInitialEmbed (client : DiscordClient) =
embed.ImageUrl <- "https://securitygladiators.com/wp-content/uploads/2020/09/Whitelist-Website-Featured-Image.jpg" embed.ImageUrl <- "https://securitygladiators.com/wp-content/uploads/2020/09/Whitelist-Website-Featured-Image.jpg"
builder.AddEmbed embed |> ignore builder.AddEmbed embed |> ignore
builder.Content <- "Click on the button to get whitelist!" builder.Content <- "Click on the button to get whitelist!"
let button = DiscordButtonComponent(ButtonStyle.Success, $"Trainer-1", $"Gimme") :> DiscordComponent let button = DiscordButtonComponent(ButtonStyle.Success, $"GimmeWhitelist", $"Gimme") :> DiscordComponent
builder.AddComponents [| button |] |> ignore builder.AddComponents [| button |] |> ignore
do! channel.SendMessageAsync(builder) do! channel.SendMessageAsync(builder)
|> Async.AwaitTask |> Async.AwaitTask
@ -291,12 +298,16 @@ let handleWhitelist (_ : DiscordClient) (event : ComponentInteractionCreateEvent
match! tryGrantWhitelist ctx with match! tryGrantWhitelist ctx with
| AlreadyWhitelisted -> | AlreadyWhitelisted ->
builder.Content <- "You are already whitelisted" builder.Content <- "You are already whitelisted"
do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder)
| NotEnoughInvites total -> | NotEnoughInvites total ->
builder.Content <- $"You need to invite more people into the server. Please invite {WhitelistInviteRequirement - total} more people to get Whitelist" do! createGuildInvite ctx true
// builder.Content <- "Testing"
// do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder)
// do! async.Zero()
| Granted role -> | Granted role ->
do! ctx.GetDiscordMember().GrantRoleAsync(role) do! ctx.GetDiscordMember().GrantRoleAsync(role)
builder.Content <- "You have been granted whitelist" builder.Content <- "You have been granted whitelist"
do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder) do! ctx.Respond(InteractionResponseType.ChannelMessageWithSource, builder)
} :> Task } :> Task
type Inviter() = type Inviter() =
@ -304,7 +315,7 @@ type Inviter() =
[<SlashCommand("recruit", "Recruit another user to this discord and earn rewards")>] [<SlashCommand("recruit", "Recruit another user to this discord and earn rewards")>]
member this.CreateInvite (ctx : InteractionContext) = member this.CreateInvite (ctx : InteractionContext) =
createGuildInvite (DiscordInteractionContext ctx) createGuildInvite (DiscordInteractionContext ctx) false
[<SlashCommand("recruited", "Get total invites from a specific user")>] [<SlashCommand("recruited", "Get total invites from a specific user")>]
member this.ListInvitedPeople (ctx : InteractionContext) = member this.ListInvitedPeople (ctx : InteractionContext) =