diff --git a/Bot/Bot.fs b/Bot/Bot.fs index 8a5c2d1..daf5c95 100644 --- a/Bot/Bot.fs +++ b/Bot/Bot.fs @@ -74,7 +74,7 @@ storeBot.add_ComponentInteractionCreated(AsyncEventHandler(Store.handleStoreEven //stealBot.add_ComponentInteractionCreated(AsyncEventHandler(Thief.handleStealButton)) inviterBot.add_GuildMemberAdded(AsyncEventHandler(InviteTracker.handleGuildMemberAdded)) inviterBot.add_ComponentInteractionCreated(AsyncEventHandler(InviteTracker.handleButtonEvent)) -inviterBot.add_GuildMemberUpdated(AsyncEventHandler(InviteTracker.handleRoleAssigned)) +inviterBot.add_GuildMemberUpdated(AsyncEventHandler(InviteTracker.handleMemberUpdated)) slotsBot.add_ComponentInteractionCreated(AsyncEventHandler(SlotMachine.handleButton)) slotsBot.add_GuildDownloadCompleted(AsyncEventHandler(SlotMachine.handleGuildDownloadCompleted)) slotsBot.add_MessageCreated(AsyncEventHandler(SlotMachine.handleMessageCreated)) diff --git a/Bot/InviteTracker.fs b/Bot/InviteTracker.fs index cd967f6..3400ddd 100644 --- a/Bot/InviteTracker.fs +++ b/Bot/InviteTracker.fs @@ -559,7 +559,7 @@ let handleCreateInvite (ctx : IDiscordContext) = do! Analytics.recruitLinkButton code user.Id user.Username (ctx.GetChannel()) } :> Task -let handleRoleAssigned (client : DiscordClient) (event : GuildMemberUpdateEventArgs) = +let handleMemberUpdated (client : DiscordClient) (event : GuildMemberUpdateEventArgs) = let addedRole (rolesBefore : DiscordRole seq) (rolesAfter : DiscordRole seq) = rolesAfter |> Seq.filter ((fun role -> rolesBefore |> Seq.exists (fun r -> role.Id = r.Id)) >> not) task { @@ -567,8 +567,9 @@ let handleRoleAssigned (client : DiscordClient) (event : GuildMemberUpdateEventA match symmetricDifference with | [] -> () | role::_ -> - let (_,guild) = client.Guilds.TryGetValue(GuildEnvironment.guildId) - do! acceptInvite guild event.Member.Id event.Member.Username |> Async.AwaitTask + if role.Name = "Degen" then + let (_,guild) = client.Guilds.TryGetValue(GuildEnvironment.guildId) + do! acceptInvite guild event.Member.Id event.Member.Username |> Async.AwaitTask return () } :> Task