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}).")); }
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); }
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)); }