diff --git a/Bot/Bot.fs b/Bot/Bot.fs index 9057455..fea8baa 100644 --- a/Bot/Bot.fs +++ b/Bot/Bot.fs @@ -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)) diff --git a/Bot/Games/Store.fs b/Bot/Games/Store.fs index c478e32..b8b4370 100644 --- a/Bot/Games/Store.fs +++ b/Bot/Games/Store.fs @@ -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 diff --git a/Bot/InviteTracker.fs b/Bot/InviteTracker.fs index c2919fe..0767b6d 100644 --- a/Bot/InviteTracker.fs +++ b/Bot/InviteTracker.fs @@ -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() =