From 545c5886fcf5cb182e64b8078f264498c7bfd21c Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Sat, 18 Jun 2022 22:29:44 +0700 Subject: [PATCH] Fix issues with granting role for inviters --- Bot/InviteTracker.fs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Bot/InviteTracker.fs b/Bot/InviteTracker.fs index 3f9fee7..57adb67 100644 --- a/Bot/InviteTracker.fs +++ b/Bot/InviteTracker.fs @@ -322,18 +322,20 @@ let acceptInvite (guild : DiscordGuild) (user : DiscordMember) = let role3x = guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter3x) |> snd let role2x = guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter2x) |> snd let role1x = guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter1x) |> snd - match! getInvitedUserCount player.DiscordId with - | count when count > 10 -> - do! [ user.GrantRoleAsync(role3x) ; user.RevokeRoleAsync(role2x) ; user.RevokeRoleAsync(role1x) ] + let! playerMember = guild.GetMemberAsync(invite.Inviter) + let! totalInvites = getInvitedUserCount player.DiscordId + if totalInvites >= 10 then + do! [ playerMember.GrantRoleAsync(role3x) ; playerMember.RevokeRoleAsync(role2x) ; playerMember.RevokeRoleAsync(role1x) ] |> List.map Async.AwaitTask |> Async.Parallel |> Async.Ignore - | count when count > 5 -> - do! [ user.GrantRoleAsync(role2x) ; user.RevokeRoleAsync(role1x) ] + elif totalInvites >= 5 then + do! [ playerMember.GrantRoleAsync(role2x) ; playerMember.RevokeRoleAsync(role1x) ] |> List.map Async.AwaitTask |> Async.Parallel |> Async.Ignore - | _ -> do! user.GrantRoleAsync(role1x) + else + do! playerMember.GrantRoleAsync(role1x) do! Analytics.invitedUserAccepted invite.Code player.DiscordId user.Id player.Name user.Username | None -> return () with _ -> ()