From 00f5fa0d8d0884c3129f6b9461ae5fe808c77ee2 Mon Sep 17 00:00:00 2001 From: mctaylors <95250141+mctaylors@users.noreply.github.com> Date: Fri, 27 Jan 2023 07:46:03 +0300 Subject: [PATCH] Fix removing everyone role while muting (#23) Co-authored-by: Octol1ttle --- Commands/MuteCommand.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Commands/MuteCommand.cs b/Commands/MuteCommand.cs index 1d2ebeb..cdd7fe5 100644 --- a/Commands/MuteCommand.cs +++ b/Commands/MuteCommand.cs @@ -1,6 +1,5 @@ using Boyfriend.Data; using Discord; -using Discord.WebSocket; namespace Boyfriend.Commands; @@ -29,15 +28,16 @@ public sealed class MuteCommand : ICommand { await MuteMemberAsync(cmd, toMute, duration, guildData, reason); } - private static async Task MuteMemberAsync(CommandProcessor cmd, SocketGuildUser toMute, + private static async Task MuteMemberAsync(CommandProcessor cmd, IGuildUser toMute, TimeSpan duration, GuildData data, string reason) { var requestOptions = Utils.GetRequestOptions($"({cmd.Context.User}) {reason}"); var role = data.MuteRole; var hasDuration = duration.TotalSeconds > 0; + var memberData = data.MemberData[toMute.Id]; if (role is not null) { if (data.Preferences["RemoveRolesOnMute"] is "true") - await toMute.RemoveRolesAsync(toMute.Roles, requestOptions); + await toMute.RemoveRolesAsync(memberData.Roles, requestOptions); await toMute.AddRoleAsync(role, requestOptions); } else { @@ -54,7 +54,7 @@ public sealed class MuteCommand : ICommand { await toMute.SetTimeOutAsync(duration, requestOptions); } - data.MemberData[toMute.Id].MutedUntil = DateTimeOffset.Now.Add(duration); + memberData.MutedUntil = DateTimeOffset.Now.Add(duration); cmd.ConfigWriteScheduled = true; var feedback = string.Format(Messages.FeedbackMemberMuted, toMute.Mention,