Ejemplo n.º 1
0
        private async Task AwardUserDKP(CommandEventArgs e)
        {
            var username = e.Args[0];

            var user = e.Server.FindUsers(username).FirstOrDefault();

            if (user != null | username == "all")
            {
                if (user != null && username != "all" && e.User.ServerPermissions.Administrator)
                {
                    var dkpAmount = Convert.ToInt32(e.Args[1]);
                    Console.WriteLine(user);
                    DKPService.AwardDKP(user, dkpAmount);
                    await e.Channel.SendMessage(string.Format("{0} `has been awarded {1} DKP.`", username, dkpAmount));
                }
                else if (!e.User.ServerPermissions.Administrator)
                {
                    await e.Channel.SendMessage("`You do not have admin permissions.`");
                }
                else
                {
                    var dkpAmount   = Convert.ToInt32(e.Args[1]);
                    var amountUsers = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => f).Count();
                    var notdeafened = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => !f.IsSelfDeafened);
                    var users       = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => f);
                    int index;
                    for (index = 0; index < amountUsers; ++index)
                    {
                        var check = notdeafened.ElementAtOrDefault(index);
                        if (check != false)
                        {
                            var dream = users.ElementAtOrDefault(index);
                            Console.WriteLine(dream);
                            DKPService.AwardDKP(dream, dkpAmount);
                        }
                    }

                    await e.Channel.SendMessage(string.Format("`Undeafened users in the voice channel have been awarded {1} DKP.`", username, dkpAmount));
                }
            }
            else
            {
                await e.Channel.SendMessage(string.Format("`Could not find user: {0}`", username));
            }
        }
Ejemplo n.º 2
0
        private void AutomaticDKP()
        {
            commands.CreateGroup("adkp", auto =>
            {
                auto.CreateCommand("on")
                .Parameter("tick", ParameterType.Required)
                .Do(async(e) =>
                {
                    var pointGain = (Convert.ToInt32(e.Args[0]));
                    void OnTimedEvent(object source, ElapsedEventArgs f)
                    {
                        TellAsync();
                    }
                    async void TellAsync()
                    {
                        await e.Channel.SendMessage(String.Format("` 1 hour has passed each user in Raid Voice Channel has gained {0} points `", pointGain));
                        var amountUsers = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => f).Count();
                        var notdeafened = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => !f.IsSelfDeafened);
                        var users       = e.Server.FindChannels("Raid", ChannelType.Voice).FirstOrDefault().Users.Select(f => f);
                        int index;
                        for (index = 0; index < amountUsers; ++index)
                        {
                            var check = notdeafened.ElementAtOrDefault(index);
                            if (check != false)
                            {
                                var dream = users.ElementAtOrDefault(index);
                                Console.WriteLine(dream);
                                DKPService.AwardDKP(dream, pointGain);
                            }
                        }
                    }


                    if (pointGain > 0 && aTimer.Enabled == false && e.User.ServerPermissions.Administrator)
                    {
                        await e.Channel.SendMessage(string.Format("`Automatic DKP adder is now ON for {0} DKP every hour.`", pointGain));
                        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
                        aTimer.Interval = 1000 * 60 * 60;
                        aTimer.Start();
                    }
                    else if (aTimer.Enabled == true)
                    {
                        await e.Channel.SendMessage("`DKP Timer is already activated, please disable it first.`");
                    }
                    else if (!e.User.ServerPermissions.Administrator)
                    {
                        await e.Channel.SendMessage("`you are not an admin permissions.`");
                    }

                    else
                    {
                        await e.Channel.SendMessage("`Try again`");
                    }
                });
                auto.CreateCommand("off")
                .Do(async(e) =>
                {
                    if (e.User.ServerPermissions.Administrator)
                    {
                        await e.Channel.SendMessage("Automatic DKP adder is now OFF.");
                        aTimer.Dispose();
                    }
                    else
                    {
                        await e.Channel.SendMessage("`You do not have admin permissions.`");
                    }
                });
            });
        }