mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-04-20 00:43:36 +03:00
Fixed the Unban function
This commit is contained in:
parent
2262a10849
commit
6fa189fba9
5 changed files with 31 additions and 9 deletions
|
@ -132,7 +132,7 @@ public class BanCommand : CommandGroup {
|
|||
[RequireDiscordPermission(DiscordPermission.BanMembers)]
|
||||
[RequireBotDiscordPermissions(DiscordPermission.BanMembers)]
|
||||
[Description("разбанит пидора")]
|
||||
public async Task<Result> UnBanUserAsync([Description("Юзер, кого банить")] IUser target, string reason) {
|
||||
public async Task<Result> UnBanUserAsync([Description("Юзер, кого разбанить")] IUser target, string reason) {
|
||||
if (!_context.TryGetGuildID(out var guildId))
|
||||
return Result.FromError(new ArgumentNullError(nameof(guildId)));
|
||||
if (!_context.TryGetUserID(out var userId))
|
||||
|
@ -147,7 +147,15 @@ public class BanCommand : CommandGroup {
|
|||
var cfg = await _dataService.GetConfiguration(guildId.Value, CancellationToken);
|
||||
Messages.Culture = cfg.Culture;
|
||||
|
||||
//TODO: Проверка на существующий бан.
|
||||
var existingBanResult = await _guildApi.GetGuildBanAsync(guildId.Value, target.ID, CancellationToken);
|
||||
if (!existingBanResult.IsDefined()) {
|
||||
return (Result)await _feedbackService.SendContextualEmbedAsync(
|
||||
new Embed(
|
||||
Title: Messages.UserNotBanned,
|
||||
Colour: ColorsList.Red
|
||||
),
|
||||
ct: CancellationToken);
|
||||
}
|
||||
|
||||
|
||||
Result<Embed> responseEmbed;
|
||||
|
@ -156,24 +164,23 @@ public class BanCommand : CommandGroup {
|
|||
if (!userResult.IsDefined(out var user))
|
||||
return Result.FromError(userResult);
|
||||
|
||||
var banResult = await _guildApi.CreateGuildBanAsync(
|
||||
var unbanResult = await _guildApi.RemoveGuildBanAsync(
|
||||
guildId.Value, target.ID, reason: $"({user.GetTag()}) {WebUtility.UrlEncode(reason)}",
|
||||
ct: CancellationToken);
|
||||
if (!banResult.IsSuccess)
|
||||
return Result.FromError(banResult.Error);
|
||||
if (!unbanResult.IsSuccess)
|
||||
return Result.FromError(unbanResult.Error);
|
||||
|
||||
responseEmbed = new EmbedBuilder().WithSmallTitle(
|
||||
string.Format(Messages.UserBanned, target.GetTag()), target)
|
||||
string.Format(Messages.UserUnbanned, target.GetTag()), target)
|
||||
.WithColour(ColorsList.Green).Build();
|
||||
|
||||
if ((cfg.PublicFeedbackChannel is not 0 && cfg.PublicFeedbackChannel != channelId.Value)
|
||||
|| (cfg.PrivateFeedbackChannel is not 0 && cfg.PrivateFeedbackChannel != channelId.Value)) {
|
||||
var logEmbed = new EmbedBuilder().WithSmallTitle(
|
||||
string.Format(Messages.UserBanned, target.GetTag()), target)
|
||||
.WithDescription(string.Format(Messages.DescriptionUserBanned, reason))
|
||||
string.Format(Messages.UserUnbanned, target.GetTag()), target)
|
||||
.WithActionFooter(user)
|
||||
.WithCurrentTimestamp()
|
||||
.WithColour(ColorsList.Red)
|
||||
.WithColour(ColorsList.Green)
|
||||
.Build();
|
||||
|
||||
if (!logEmbed.IsDefined(out var logBuilt))
|
||||
|
|
6
Messages.Designer.cs
generated
6
Messages.Designer.cs
generated
|
@ -818,5 +818,11 @@ namespace Boyfriend {
|
|||
return ResourceManager.GetString("UserAlreadyBanned", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
internal static string UserUnbanned {
|
||||
get {
|
||||
return ResourceManager.GetString("UserUnbanned", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -492,4 +492,7 @@
|
|||
<data name="UserAlreadyBanned" xml:space="preserve">
|
||||
<value>This user is already banned!</value>
|
||||
</data>
|
||||
<data name="UserUnbanned" xml:space="preserve">
|
||||
<value>{0} was unbanned</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -492,4 +492,7 @@
|
|||
<data name="UserAlreadyBanned" xml:space="preserve">
|
||||
<value>Этот пользователь уже забанен!</value>
|
||||
</data>
|
||||
<data name="UserUnbanned" xml:space="preserve">
|
||||
<value>{0} был(-а) забанен(-а)</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -492,4 +492,7 @@
|
|||
<data name="UserAlreadyBanned" xml:space="preserve">
|
||||
<value>этот шизоид уже лежит в бане</value>
|
||||
</data>
|
||||
<data name="UserUnbanned" xml:space="preserve">
|
||||
<value>{0} раззабанен</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
Loading…
Add table
Reference in a new issue