private async Task <string> GetText(SocketCommandContext context, SocketUserMessage userMessage, int value, bool isAprilFools, SocketRole role) { if (value % 6 != 0) { await _rouletteStore.IncrementRouletteLoses(context.Guild.Id, userMessage.Author.Id); return(LosePhrases[_rng.Next(LosePhrases.Length)]); } var template = isAprilFools ? "**С ПЕРВЫМ АПРЕЛЯ, МУДИЛА!**" : WinPhrases[_rng.Next(WinPhrases.Length)]; await _rouletteStore.IncrementRouletteWins(context.Guild.Id, userMessage.Author.Id); if (userMessage.Author is SocketGuildUser user) { Logger.Information("Added role \"{0}\" to user \"{1}\" at server \"{2}\".", role.Name, user.Username, context.Guild.Name); await user.AddRoleAsync(role, new RequestOptions { AuditLogReason = "Застрелился!" }); var expiry = TimeSpan.FromSeconds(_config.RussianRoulette.WinnerDurationSeconds); _backgroundJobClient.Schedule <IRemoveRoleJob>(j => j.RemoveRole(context.Guild.Id, user.Id, role.Id, "Жив, цел, орёл!"), expiry); } return(string.Format(template, userMessage.Author.Mention)); }