This commit is contained in:
Joseph Ferano 2022-05-23 23:31:19 +07:00
parent 11fd4a45e6
commit c9887afca0

View File

@ -467,9 +467,11 @@ let handleGuildMemberAdded _ (eventArgs : GuildMemberAddEventArgs) =
let submitAddress (address : string) (ctx : IDiscordContext) =
PlayerInteractions.executePlayerAction ctx (fun player -> async {
printfn "1"
let pubkey = PublicKey(address)
try
if pubkey.IsValid() && pubkey.IsOnCurve() then
printfn "2"
let! maybeAddress = getWalletAddress player.DiscordId
let msg =
match maybeAddress with
@ -477,6 +479,7 @@ let submitAddress (address : string) (ctx : IDiscordContext) =
| Some _ -> "We successfully updated your wallet address:"
| None -> "We have successfully received your wallet address"
do! addWalletAddress (ctx.GetDiscordMember().Id) address
printfn "3"
let user = ctx.GetDiscordMember()
if ctx.GetDiscordMember().Roles |> Seq.exists (fun role -> role.Id = GuildEnvironment.roleWhitelistPending) then
@ -489,6 +492,7 @@ let submitAddress (address : string) (ctx : IDiscordContext) =
do! user.GrantRoleAsync(role) |> Async.AwaitTask
let role = ctx.GetGuild().GetRole(GuildEnvironment.roleWhiteOGPending)
do! user.RevokeRoleAsync(role) |> Async.AwaitTask
printfn "4"
do! Messaging.sendFollowUpMessage ctx $"""
@ -500,10 +504,12 @@ Keep an eye on <#{GuildEnvironment.channelAnnouncements}> for updates."""
let builder = DiscordMessageBuilder()
builder.WithContent($"{ctx.GetDiscordMember().Username} submitted their wallet address in <#{GuildEnvironment.channelSubmitWallet}> and confirmed whitelist") |> ignore
let channel = (ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle))
printfn "5"
do! channel.SendMessageAsync(builder)
|> Async.AwaitTask
|> Async.Ignore
do! Analytics.walletSubmit (ctx.GetDiscordMember())
printfn "6"
else
do! Messaging.sendFollowUpMessage ctx "⚠️ That's not a valid Solana address, please try again"
do! Analytics.invalidWalletSubmit (ctx.GetDiscordMember())