Fix issues with granting role for inviters
This commit is contained in:
parent
f5336fb9b7
commit
545c5886fc
@ -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 _ -> ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user