Beispiel #1
0
        public async Task Announce([Remainder] string content)
        {
            var config = GlobalUserAccounts.GetAllAccounts();

            foreach (var userAcc in config)
            {
                SocketUser user = Global.Client.GetUser(userAcc.Id);
                await CreateMessage.CreateAndSendMessageAsync("Nayu Announcement!", content, DateTime.Now, user);

                GlobalUserAccounts.SaveAccounts(userAcc.Id);
            }

            await ReplyAsync($"Sent \n`{content}`\n to everyone");
        }
Beispiel #2
0
        public async Task GDLB(int page = 1)
        {
            if (page < 1)
            {
                await ReplyAsync("Are you really trying that right now? ***REALLY?***");

                return;
            }

            var accounts = GlobalUserAccounts.GetAllAccounts();

            const int usersPerPage = 9;
            // Calculate the highest accepted page number => amount of pages we need to be able to fit all users in them
            // (amount of users) / (how many to show per page + 1) results in +1 page more every time we exceed our usersPerPage
            var lastPageNumber = 1 + (accounts.Count / (usersPerPage + 1));

            if (page > lastPageNumber)
            {
                await ReplyAsync($"There are not that many pages...\nPage {lastPageNumber} is the last one...");

                return;
            }

            // Sort the accounts descending by duel wins
            var ordered = accounts.OrderByDescending(acc => acc.Wins).ToList();

            var embed = new EmbedBuilder()
                        .WithTitle($"Global Duels Leaderboard:")
                        .WithFooter($"Page {page}/{lastPageNumber}");

            page--;
            for (var i = 1; i <= usersPerPage && i + usersPerPage * page <= ordered.Count; i++)
            {
                var account = ordered[i - 1 + usersPerPage * page];
                var user    = Global.Client.GetUser(account.Id);
                embed.WithColor(Global.NayuColor);
                embed.AddField($"#{i + usersPerPage * page} {user.Username}", $"{account.Wins} Wins", true);
            }

            await ReplyAsync("", embed : embed.Build());
        }
Beispiel #3
0
        //try to get something so that all pets will experience soemthing
        public async void OnTimerTicked(object sender, ElapsedEventArgs e)
        {
            var config = GlobalUserAccounts.GetAllAccounts();

            foreach (var userAcc in config)
            {
                Core.Entities.Chomusuke activeChomusuke = Global.NewChomusuke;
                if (userAcc.ActiveChomusuke == 1)
                {
                    activeChomusuke = userAcc.Chomusuke1;
                }
                if (userAcc.ActiveChomusuke == 2)
                {
                    activeChomusuke = userAcc.Chomusuke2;
                }
                if (userAcc.ActiveChomusuke == 3)
                {
                    activeChomusuke = userAcc.Chomusuke3;
                }
                if (userAcc.Chomusuke1.Have)
                {
                    if (activeChomusuke.Hunger > 0)
                    {
                        activeChomusuke.Hunger -= 1;
                    }
                    else
                    {
                        activeChomusuke.Hunger = 0;
                    }
                    if (activeChomusuke.Waste < 20)
                    {
                        activeChomusuke.Waste += 1;
                    }
                    else
                    {
                        activeChomusuke.Waste = 20;
                    }

                    var user = Global.Client.GetUser(userAcc.Id);
                    if (activeChomusuke.Waste >= 15)
                    {
                        activeChomusuke.Sick = true;
                        await CreateMessage.CreateAndSendMessageAsync("Chomusuke Alert",
                                                                      $":exclamation:  | {user.Mention}, **{activeChomusuke.Name}** is sick! Treat it right with medicine with n!buy!",
                                                                      DateTime.Now, user);
                    }

                    if ((activeChomusuke.Waste == 20) && (activeChomusuke.Hunger <= 5))
                    {
                        activeChomusuke.Trust -= 1;
                        await CreateMessage.CreateAndSendMessageAsync("Chomusuke Alert",
                                                                      $":exclamation:  | {user.Mention}, **{activeChomusuke.Name}** is losing trust in you! The living conditions you provided were too low... Maybe try to pay more attention to your Chomusuke!",
                                                                      DateTime.Now, user);
                    }

                    if (userAcc.ActiveChomusuke == 1)
                    {
                        userAcc.Chomusuke1 = activeChomusuke;
                    }
                    if (userAcc.ActiveChomusuke == 2)
                    {
                        userAcc.Chomusuke2 = activeChomusuke;
                    }
                    if (userAcc.ActiveChomusuke == 3)
                    {
                        userAcc.Chomusuke3 = activeChomusuke;
                    }
                    GlobalUserAccounts.SaveAccounts(userAcc.Id);
                }
                else
                {
                    return;
                }
            }

            Console.WriteLine("Successfully executed pet crippling effects.");
        }