private async Task WarnUserAsync( CommandContext ctx, DiscordMember member, string reason, bool silent, DiscordMember issuer ) { int?warningId = await _warningService.AddWarningAsync(member.Id, reason, issuer.Id); if (warningId.HasValue) { int numberOfWarnings = await _warningService.GetNumberOfWarnings(member.Id); try { await ctx.Message.DeleteAsync(); if (silent) { await ctx.Channel.SendMessageAsync( $"**Uživatel <@!{member.Id}> byl varován!**"); } else { await ctx.Channel.SendMessageAsync( $"**Varování (<@!{member.Id}>)**: {reason.RemoveDiscordMentions(ctx.Guild, _logger)}."); } string messageForUser = $"Na *studentském FIT Discordu* v kanále _#{ctx.Channel.Name}_ vám bylo uděleno **varování**. (warning id: {warningId})" + $"\n\n" + $"Důvod: {reason}" + "\n\n" + $"Toto je vaše **{numberOfWarnings}. varování**, #beGood."; await member.SendMessageAsync(messageForUser.RemoveDiscordMentions(ctx.Guild, _logger)); } catch (Exception e) { _logger.LogError(e, "Failed to announce warning"); } } else { _logger.LogWarning("Couldn't add a warning for {Member} with {Reason}", member.RatherNicknameThanUsername(), reason); await ctx.Message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":-1:")); } }