示例#1
0
        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));
        }