Delete messages in submit channel, copy

This commit is contained in:
Joseph Ferano 2022-05-17 23:41:08 +07:00
parent b91622bed7
commit 1aeffe4c35
3 changed files with 36 additions and 7 deletions

View File

@ -80,6 +80,7 @@ jpegBot.add_ComponentInteractionCreated(AsyncEventHandler(Store.handleJpegEvents
inviterBot.add_GuildMemberAdded(AsyncEventHandler(InviteTracker.handleGuildMemberAdded))
inviterBot.add_ComponentInteractionCreated(AsyncEventHandler(Whitelist.handleButtonEvent))
inviterBot.add_GuildMemberUpdated(AsyncEventHandler(InviteTracker.handleMemberUpdated))
inviterBot.add_MessageCreated(AsyncEventHandler(InviteTracker.handleMessageCreated))
slotsBot.add_ComponentInteractionCreated(AsyncEventHandler(SlotMachine.handleButton))
slotsBot.add_GuildDownloadCompleted(AsyncEventHandler(SlotMachine.handleGuildDownloadCompleted))
slotsBot.add_MessageCreated(AsyncEventHandler(SlotMachine.handleMessageCreated))

View File

@ -167,7 +167,7 @@ let purchaseItemEmbed quantity (item : Item) =
🎉 Congratulations, you purchased {og}WHITELIST!
**__Mint Day: 31ST MAY__**
Go to <#{GuildEnvironment.channelSubmitWallet}> to input your **Solana Wallet Address** to confirm your Whitelist."""
Go to <#{GuildEnvironment.channelSubmitWallet}> to input your **Solana Wallet Address**, and confirm your Whitelist."""
| _ -> embed.Description <- $"Purchased {item.Name}"
embed

View File

@ -354,13 +354,20 @@ let sendSubmitEmbed (ctx : IDiscordContext) =
async {
try
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelSubmitWallet)
let rewardMsg = $"Instructions for submitting wallet"
let rewardMsg = $"""
To confirm your **Whitelist** please submit it below:
1️⃣ Type `/submit`
2️⃣ Paste your **Wallet Address**
3️⃣ Press `Enter`
**Check status anytime to double check it worked*"""
let embed =
DiscordEmbedBuilder()
.WithColor(DiscordColor.White)
.WithDescription(rewardMsg)
.WithImageUrl("https://s8.gifyu.com/images/whitelist-submit-banner22.png")
.WithTitle("Submit Wallet")
.WithImageUrl("https://s8.gifyu.com/images/whitelist-submit-4.png")
.WithTitle("Submit Your Solana Wallet Address")
let builder = DiscordMessageBuilder().AddEmbed(embed)
let btn = DiscordButtonComponent(ButtonStyle.Success, "WalletStatus", "Check Status") :> DiscordComponent
@ -423,6 +430,14 @@ let handleMemberUpdated (client : DiscordClient) (event : GuildMemberUpdateEvent
return ()
} :> Task
let handleMessageCreated _ (event : MessageCreateEventArgs) =
task {
let bot = GuildEnvironment.botClientRecruit.Value
if event.Channel.Id = GuildEnvironment.channelSubmitWallet && event.Author.Id <> bot.CurrentUser.Id then
do! Async.Sleep 100
do! event.Message.DeleteAsync()
} :> Task
let handleGuildMemberAdded _ (eventArgs : GuildMemberAddEventArgs) =
task {
let! exists = checkUserAlreadyInvited eventArgs.Member.Id
@ -434,12 +449,25 @@ let submitWhitelist (ctx : IDiscordContext) (address : string) =
task {
// BtshZ7oNB5tk5pVbDpsRCziZ1qwV7SMCJq1Pe3YbHZuo
let pubkey = PublicKey(address)
try
if pubkey.IsValid() && pubkey.IsOnCurve() then
do! addWalletAddress (ctx.GetDiscordMember().Id) address
do! Messaging.sendSimpleResponse ctx "You provided a valid address"
do! Messaging.sendSimpleResponse ctx $"""
We have successfully received your wallet address: {address}
Keep an eye on <#{GuildEnvironment.channelAnnouncements}> for updates.
🚀 Mint Date: 31st May 18:00 UTC"""
let builder = DiscordMessageBuilder()
builder.WithContent($"<@{ctx.GetDiscordMember().Username}> submitted his wallet address in <#{GuildEnvironment.channelSubmitWallet}> and confirmed whitelist") |> ignore
let channel = (ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle))
do! channel.SendMessageAsync(builder)
|> Async.AwaitTask
|> Async.Ignore
else
do! Messaging.sendSimpleResponse ctx "This address is not valid"
return ()
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
with _ ->
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
} :> Task
type Inviter() =