diff --git a/src/Responders/GuildMemberRolesUpdatedResponder.cs b/src/Responders/GuildMemberRolesUpdatedResponder.cs
deleted file mode 100644
index b883c89..0000000
--- a/src/Responders/GuildMemberRolesUpdatedResponder.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using JetBrains.Annotations;
-using Octobot.Data;
-using Octobot.Services;
-using Remora.Discord.API.Abstractions.Gateway.Events;
-using Remora.Discord.Gateway.Responders;
-using Remora.Results;
-
-namespace Octobot.Responders;
-
-///
-/// Handles updating when a guild member is updated.
-///
-[UsedImplicitly]
-public class GuildMemberUpdateResponder : IResponder
-{
- private readonly GuildDataService _guildData;
-
- public GuildMemberUpdateResponder(GuildDataService guildData)
- {
- _guildData = guildData;
- }
-
- public async Task RespondAsync(IGuildMemberUpdate gatewayEvent, CancellationToken ct = default)
- {
- var memberData = await _guildData.GetMemberData(gatewayEvent.GuildID, gatewayEvent.User.ID, ct);
- if (memberData.MutedUntil is null)
- {
- memberData.Roles = gatewayEvent.Roles.ToList().ConvertAll(r => r.Value);
- }
-
- return Result.FromSuccess();
- }
-}
diff --git a/src/Services/GuildDataService.cs b/src/Services/GuildDataService.cs
index 5d2b1b1..95af725 100644
--- a/src/Services/GuildDataService.cs
+++ b/src/Services/GuildDataService.cs
@@ -110,15 +110,6 @@ public sealed class GuildDataService : IHostedService
continue;
}
- if (data.MutedUntil is null)
- {
- var memberResult = await _guildApi.GetGuildMemberAsync(guildId, data.Id.ToSnowflake(), ct);
- if (memberResult.IsSuccess)
- {
- data.Roles = memberResult.Entity.Roles.ToList().ConvertAll(r => r.Value);
- }
- }
-
memberData.Add(data.Id, data);
}
diff --git a/src/Services/Update/MemberUpdateService.cs b/src/Services/Update/MemberUpdateService.cs
index 7cd13fe..1d2b7f6 100644
--- a/src/Services/Update/MemberUpdateService.cs
+++ b/src/Services/Update/MemberUpdateService.cs
@@ -89,6 +89,11 @@ public sealed partial class MemberUpdateService : BackgroundService
return failedResults.AggregateErrors();
}
+ if (data.MutedUntil is null)
+ {
+ data.Roles = guildMember.Roles.ToList().ConvertAll(r => r.Value);
+ }
+
var autoUnmuteResult = await TryAutoUnmuteAsync(guildId, id, data, ct);
failedResults.AddIfFailed(autoUnmuteResult);