From a467c646172ae311266dd72a9e3f0d05f37b7436 Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Fri, 23 Jun 2023 23:45:52 +0500 Subject: [PATCH] Corrected some mistakes Signed-off-by: Octol1ttle --- Commands/BanCommandGroup.cs | 2 +- Commands/KickCommandGroup.cs | 4 ++-- Commands/MuteCommandGroup.cs | 28 ++++++++++++++++++++++------ 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Commands/BanCommandGroup.cs b/Commands/BanCommandGroup.cs index be554e6..a7494dd 100644 --- a/Commands/BanCommandGroup.cs +++ b/Commands/BanCommandGroup.cs @@ -21,7 +21,7 @@ using Remora.Results; namespace Boyfriend.Commands; /// -/// Handles commands related to ban management: /ban and unban. +/// Handles commands related to ban management: /ban and /unban. /// public class BanCommandGroup : CommandGroup { private readonly IDiscordRestChannelAPI _channelApi; diff --git a/Commands/KickCommandGroup.cs b/Commands/KickCommandGroup.cs index 5d384ef..bcb1e64 100644 --- a/Commands/KickCommandGroup.cs +++ b/Commands/KickCommandGroup.cs @@ -76,8 +76,8 @@ public class KickCommandGroup : CommandGroup { var cfg = data.Configuration; Messages.Culture = data.Culture; - var existingKickResult = await _guildApi.GetGuildMemberAsync(guildId.Value, target.ID); - if (!existingKickResult.IsSuccess) { + var memberResult = await _guildApi.GetGuildMemberAsync(guildId.Value, target.ID, CancellationToken); + if (!memberResult.IsSuccess) { var embed = new EmbedBuilder().WithSmallTitle(Messages.UserNotFoundShort, currentUser) .WithColour(ColorsList.Red).Build(); diff --git a/Commands/MuteCommandGroup.cs b/Commands/MuteCommandGroup.cs index c13cf59..bb02bce 100644 --- a/Commands/MuteCommandGroup.cs +++ b/Commands/MuteCommandGroup.cs @@ -83,9 +83,20 @@ public class MuteCommandGroup : CommandGroup { if (!currentUserResult.IsDefined(out var currentUser)) return Result.FromError(currentUserResult); + var memberResult = await _guildApi.GetGuildMemberAsync(guildId.Value, target.ID, CancellationToken); + if (!memberResult.IsSuccess) { + var embed = new EmbedBuilder().WithSmallTitle(Messages.UserNotFoundShort, currentUser) + .WithColour(ColorsList.Red).Build(); + + if (!embed.IsDefined(out var alreadyBuilt)) + return Result.FromError(embed); + + return (Result)await _feedbackService.SendContextualEmbedAsync(alreadyBuilt, ct: CancellationToken); + } + var interactionResult = await _utility.CheckInteractionsAsync( - guildId.Value, userId.Value, target.ID, "Timeout", CancellationToken); + guildId.Value, userId.Value, target.ID, "Mute", CancellationToken); if (!interactionResult.IsSuccess) return Result.FromError(interactionResult); @@ -187,10 +198,9 @@ public class MuteCommandGroup : CommandGroup { var cfg = await _dataService.GetConfiguration(guildId.Value, CancellationToken); Messages.Culture = cfg.GetCulture(); - var existingMuteResult = await _guildApi.ModifyGuildMemberAsync( - guildId.Value, target.ID, communicationDisabledUntil: DateTimeOffset.UtcNow); - if (!existingMuteResult.IsSuccess) { - var embed = new EmbedBuilder().WithSmallTitle(Messages.UserNotMuted, currentUser) + var memberResult = await _guildApi.GetGuildMemberAsync(guildId.Value, target.ID, CancellationToken); + if (!memberResult.IsSuccess) { + var embed = new EmbedBuilder().WithSmallTitle(Messages.UserNotFoundShort, currentUser) .WithColour(ColorsList.Red).Build(); if (!embed.IsDefined(out var alreadyBuilt)) @@ -199,6 +209,12 @@ public class MuteCommandGroup : CommandGroup { return (Result)await _feedbackService.SendContextualEmbedAsync(alreadyBuilt, ct: CancellationToken); } + var interactionResult + = await _utility.CheckInteractionsAsync( + guildId.Value, userId.Value, target.ID, "Unmute", CancellationToken); + if (!interactionResult.IsSuccess) + return Result.FromError(interactionResult); + // Needed to get the tag and avatar var userResult = await _userApi.GetUserAsync(userId.Value, CancellationToken); if (!userResult.IsDefined(out var user)) @@ -206,7 +222,7 @@ public class MuteCommandGroup : CommandGroup { var unmuteResult = await _guildApi.ModifyGuildMemberAsync( guildId.Value, target.ID, $"({user.GetTag()}) {reason}".EncodeHeader(), - communicationDisabledUntil: DateTimeOffset.UtcNow, ct: CancellationToken); + communicationDisabledUntil: null, ct: CancellationToken); if (!unmuteResult.IsSuccess) return Result.FromError(unmuteResult.Error);