Пример #1
0
        public async Task <RuntimeResult> AddBanAsync
        (
            IGuildUser user,
            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)
            {
                return(addBan.ToRuntimeResult());
            }

            var ban = addBan.Entity;

            var notifyResult = await _logging.NotifyUserBannedAsync(ban);

            if (!notifyResult.IsSuccess)
            {
                return(notifyResult.ToRuntimeResult());
            }

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

            return(RuntimeCommandResult.FromSuccess($"User banned (ban ID {ban.ID})."));
        }
Пример #2
0
    public async Task <IResult> AddBanAsync
    (
        IUser user,
        string reason,
        TimeSpan?expiresAfter = null
    )
    {
        DateTimeOffset?expiresOn = null;

        if (expiresAfter is not null)
        {
            expiresOn = DateTimeOffset.UtcNow.Add(expiresAfter.Value);
        }

        var createBan = await _bans.CreateBanAsync
                        (
            _context.User.ID,
            user.ID,
            _context.GuildID.Value,
            reason,
            expiresOn : expiresOn
                        );

        if (!createBan.IsSuccess)
        {
            return(createBan);
        }

        var ban = createBan.Entity;

        var notifyResult = await _logging.NotifyUserBannedAsync(ban);

        if (!notifyResult.IsSuccess)
        {
            return(notifyResult);
        }

        return(await _guildAPI.CreateGuildBanAsync(_context.GuildID.Value, user.ID, reason : reason));
    }