diff --git a/Bot/GuildEnvironment.fs b/Bot/GuildEnvironment.fs index 973f089..142d996 100644 --- a/Bot/GuildEnvironment.fs +++ b/Bot/GuildEnvironment.fs @@ -60,9 +60,9 @@ let roleWhitelist = getId "ROLE_WHITELIST" let roleWhiteOG = getId "ROLE_WHITEOG" let roleAdmin = getId "ROLE_ADMIN" let roleMagicEden = getId "ROLE_MAGICEDEN" -//let roleRecruiter1x = getId "ROLE_RECRUITER_1X" -//let roleRecruiter2x = getId "ROLE_RECRUITER_2X" -//let roleRecruiter3x = getId "ROLE_RECRUITER_3X" +let roleRecruiter1x = getId "ROLE_RECRUITER_1X" +let roleRecruiter2x = getId "ROLE_RECRUITER_2X" +let roleRecruiter3x = getId "ROLE_RECRUITER_3X" let mutable botClientRecruit : DiscordClient option = None let mutable botClientHacker : DiscordClient option = None let mutable botClientSlots : DiscordClient option = None diff --git a/Bot/InviteTracker.fs b/Bot/InviteTracker.fs index e62a73c..7ca8888 100644 --- a/Bot/InviteTracker.fs +++ b/Bot/InviteTracker.fs @@ -307,13 +307,21 @@ let acceptInvite (guild : DiscordGuild) (user : DiscordMember) = |> Async.Ignore } | None -> async.Return() -// let role = -// match invite.Count with -// | count when count > 10 -> guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter3x) -// | count when count > 5 -> guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter2x) -// | _ -> guild.Roles.TryGetValue(GuildEnvironment.roleRecruiter1x) -// |> snd -// do! user.GrantRoleAsync(role) + 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 invite.Count with + | count when count > 10 -> + do! [ user.GrantRoleAsync(role3x) ; user.RevokeRoleAsync(role2x) ; user.RevokeRoleAsync(role1x) ] + |> List.map Async.AwaitTask + |> Async.Parallel + |> Async.Ignore + | count when count > 5 -> + do! [ user.GrantRoleAsync(role2x) ; user.RevokeRoleAsync(role1x) ] + |> List.map Async.AwaitTask + |> Async.Parallel + |> Async.Ignore + | _ -> do! user.GrantRoleAsync(role1x) do! Analytics.invitedUserAccepted invite.Code player.DiscordId user.Id player.Name user.Username | None -> return () with _ -> ()