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)); } }
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.`"); } }); }); }