Пример #1
0
        public async Task AddBanAsync
        (
            [NotNull] IGuildUser user,
            [NotNull] string reason,
            TimeSpan?expiresAfter = null
        )
        {
            DateTime?expiresOn = null;

            if (!(expiresAfter is null))
            {
                expiresOn = DateTime.Now.Add(expiresAfter.Value);
            }

            var addBan = await _bans.CreateBanAsync(this.Context.User, user, reason, expiresOn : expiresOn);

            if (!addBan.IsSuccess)
            {
                await _feedback.SendErrorAsync(this.Context, addBan.ErrorReason);

                return;
            }

            var ban = addBan.Entity;

            await this.Context.Guild.AddBanAsync((ulong)ban.User.DiscordID, reason : reason);

            await _feedback.SendConfirmationAsync(this.Context, $"User banned (ban ID {ban.ID}).");

            await _logging.NotifyUserBanned(ban);
        }