예제 #1
0
 private void LeaveQueue()
 {
     commands.CreateCommand("LeaveQueue")
     .Do(async(e) =>
     {
         string reaction           = "";
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         if (serverRepo.IsServerVerified(e.Server.Id) && settingsRepo.lfgStatus(e.Server.Id))
         {
             try
             {
                 trigger.LeaveQueue(e.User);
                 reaction = "You have left queue.";
             }
             catch
             {
                 reaction = "Could not find you in the queue.";
             }
         }
         else
         {
         }
         await e.Channel.SendMessage(reaction);
     });
 }
예제 #2
0
 public void Description()
 {
     commands.CreateCommand("Description")
     .Parameter("Description", ParameterType.Unparsed)
     .Do(async(e) =>
     {
         string returnstring = "";
         if (new ServerRepo(new ServerContext()).IsServerVerified(e.Server.Id) && new ServerRepo(new ServerContext()).IsAdmin(e.User.Id, e.Server.Id))
         {
             if (e.GetArg("Description") != "")
             {
                 if (e.GetArg("Description").Length <= 500)
                 {
                     new ServerRepo(new ServerContext()).SetServerGescriptiong(e.Server.Id, (e.GetArg("Description")));
                     Eng_Default.DescriptionSet();
                 }
                 else
                 {
                     returnstring = Eng_Default.DescriptionTooLong();
                 }
             }
             else
             {
                 returnstring = new ServerRepo(new ServerContext()).GetServerDescription(e.Server.Id);
             }
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #3
0
 private void AddCoach()
 {
     commands.CreateCommand("AddCoach")
     .Parameter("User")
     .Parameter("Role", ParameterType.Optional)
     .Parameter("ChampionName", ParameterType.Unparsed)
     .Do(async(e) =>
     {
         string returnstring   = "";
         ServerRepo serverRepo = new ServerRepo(new ServerContext());
         CoachTrigger trigger  = new CoachTrigger();
         if (e.Server.Id == 302775478824075267 && serverRepo.IsAdmin(e.User.Id, e.Server.Id))
         {
             try
             {
                 trigger.AddCoach(e.Message.MentionedUsers.First().Id, e.GetArg("ChampionName"),
                                  e.GetArg("Role"));
                 returnstring = "Coach added successfully.";
             }
             catch
             {
                 returnstring = "Failed to add coach";
             }
         }
         else
         {
             returnstring = Eng_Default.NotAllowed();
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #4
0
 public void ServerInfo()
 {
     commands.CreateCommand("Servers")
     .Parameter("CommandType", ParameterType.Optional)
     .Parameter("Filter", ParameterType.Unparsed)
     .Do(async(e) =>
     {
         string returnstring = "";
         if (e.GetArg("Filter") == "" && e.GetArg("CommandType").ToLower() == "list")
         {
             returnstring = "Servers that use AtlasBot:\n```";
             int count    = 0;
             foreach (Discord.Server server in BotUser.Servers)
             {
                 if (count != BotUser.Servers.Count() - 1)
                 {
                     returnstring += new ServerRepo(new ServerContext()).ServerName(server.Id) + ", ";
                 }
                 else
                 {
                     returnstring += new ServerRepo(new ServerContext()).ServerName(server.Id) + ".";
                 }
                 count++;
             }
             returnstring += "```";
         }
         if (e.GetArg("CommandType").ToLower() == "info" && e.GetArg("Filter") != "")
         {
             foreach (Discord.Server server in BotUser.Servers)
             {
                 if (new ServerRepo(new ServerContext()).ServerName(server.Id).ToLower() ==
                     e.GetArg("Filter").ToLower())
                 {
                     returnstring  = "**" + new ServerRepo(new ServerContext()).ServerName(server.Id) + ":** ";
                     returnstring += "\n" +
                                     new ServerRepo(new ServerContext()).GetServerDescription(server.Id) +
                                     "\nInvite link: " + new ServerRepo(new ServerContext()).InviteLink(server.Id);
                 }
             }
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #5
0
 public void ChannelSettings()
 {
     commands.CreateCommand("LFGChannel")
     .Parameter("CommandType")
     .Parameter("Channel", ParameterType.Optional)
     .Do(async(e) =>
     {
         string returnstring       = "";
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         if (serverRepo.IsServerVerified(e.Server.Id) && serverRepo.IsAdmin(e.User.Id, e.Server.Id))
         {
             if (e.GetArg("CommandType").ToLower() == "set")
             {
                 try
                 {
                     settingsRepo.SetLfgChannel(e.Message.MentionedChannels.First().Id, e.Server.Id);
                     returnstring = "Looking for group channel has been set.";
                 }
                 catch
                 {
                     returnstring = "Failed to set a channel, have you tagged a channel?";
                 }
             }
             else if (e.GetArg("CommandType").ToLower() == "disable")
             {
                 settingsRepo.DisableLfg(e.Server.Id);
                 returnstring = "Looking for group has been disabled.";
             }
         }
         else
         {
             returnstring = Eng_Default.ServerIsNotVerified();
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #6
0
 public void UniversalRole()
 {
     commands.CreateCommand("Roles")
     .Parameter("Parameter", ParameterType.Unparsed)
     .Do(async(e) =>
     {
         string returnstring;
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         if (serverRepo.IsServerVerified(e.Server.Id))
         {
             try
             {
                 Discord.Role r = RoleSearch(e.Server, e.GetArg("Parameter").ToLower());
                 if (!settingsRepo.IsRoleDisabled(r.Name.ToLower(), e.Server.Id))
                 {
                     await e.User.AddRoles(r);
                     returnstring = Eng_Default.RoleHasBeenGiven(r.Name);
                 }
                 else
                 {
                     returnstring = Eng_Default.RoleHasBeenDisabled();
                 }
             }
             catch
             {
                 returnstring = Eng_Default.RoleNotFound(e.GetArg("Parameter"));
             }
         }
         else
         {
             returnstring = Eng_Default.ServerIsNotVerified();
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #7
0
        public void Update()
        {
            commands.CreateCommand("Update")
            .Do(async(e) =>
            {
                RankCommands rankCommands = new RankCommands(BotUser, commands);
                string returnstring       = "";
                ServerRepo serverRepo     = new ServerRepo(new ServerContext());
                UserRepo userRepo         = new UserRepo(new UserContext());
                RoleManagementTrigger rmt = new RoleManagementTrigger(BotUser, commands);

                /*
                 * if (userRepo.IsAtlasAdmin(e.User.Id))
                 * {
                 *  foreach (Discord.Server server in BotUser.Servers)
                 *  {
                 *      if (serverRepo.IsServerVerified(server.Id))
                 *      {
                 *          foreach (Discord.User user in server.Users)
                 *          {
                 *
                 *              try
                 *              {
                 *                  await Task.Run(() => rmt.RemoveRoles(server, user));
                 *                  await Task.Run(() => rankCommands.GetRankRoles(server, user));
                 *              }
                 *              catch
                 *              {
                 *
                 *              }
                 *
                 *          }
                 *      }
                 *  }
                 *  returnstring = "System update complete.";
                 * }
                 *
                 * else*/if (new ServerRepo(new ServerContext()).IsAdmin(e.User.Id, e.Server.Id))
                {
                    if ((serverRepo.GetLastupdateDateServer(e.Server.Id) < DateTime.Today) && serverRepo.IsServerVerified(e.Server.Id))
                    {
                        foreach (Discord.User user in e.Server.Users)
                        {
                            try
                            {
                                await Task.Run(() => rmt.RemoveRoles(e.Server, user));
                                await Task.Run(() => rankCommands.GetRankRoles(e.Server, user));
                            }
                            catch
                            {
                                Console.WriteLine("Failed to give roles, account not registered.");
                            }
                        }
                        serverRepo.SetUpdateDateServer(e.Server.Id, DateTime.Today);
                        returnstring = "Server update successfull.";
                    }
                    else
                    {
                        returnstring = "Please wait for one day to update your server again.";
                    }
                }
                else
                {
                    if (userRepo.GetLastRefreshDate(e.User.Id) > DateTime.Today && serverRepo.IsServerVerified(e.Server.Id))
                    {
                        try
                        {
                            await Task.Run(() => rmt.RemoveRoles(e.Server, e.User));
                            await Task.Run(() => rankCommands.GetRankRoles(e.Server, e.User));
                        }
                        catch
                        {
                        }
                        userRepo.SetLastRefreshDate(e.User.Id, DateTime.Now);
                    }
                }
                await e.Channel.SendMessage(returnstring);
            });
        }
예제 #8
0
 private void QueueUp()
 {
     commands.CreateCommand("QueueUp")
     .Alias("Queue")
     .Parameter("Queue", ParameterType.Unparsed)
     .Do(async(e) =>
     {
         string returnstring       = "";
         StringHandler SH          = new StringHandler(e.Server);
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         if (serverRepo.IsServerVerified(e.Server.Id) && settingsRepo.lfgStatus(e.Server.Id) || e.Server.Id == DiscordIds.AtlasId)
         {
             Summoner summoner = null;
             try
             {
                 DataLibary.Models.User user =
                     new UserRepo(new UserContext()).GetUserByDiscord(e.User.Id);
                 summoner =
                     new SummonerAPI().GetSummoner(
                         new SummonerRepo(new SummonerContext()).GetSummonerByUserId(user),
                         ToolKit.LeagueAndDatabase.GetRegionFromDatabaseId(
                             new RegionRepo(new RegionContext()).GetRegionId(user)
                             ));
             }
             catch
             {
                 returnstring = Eng_Default.RegisterAccount();
             }
             if (summoner != null)
             {
                 try
                 {
                     bool found   = false;
                     string queue = "";
                     foreach (string line in Queues.GetQueues())
                     {
                         if (e.GetArg("Queue").ToLower() == line)
                         {
                             found = true;
                             queue = line;
                         }
                     }
                     if (found == true)
                     {
                         trigger.QueuePerson(summoner, e.User, e.Server, queue);
                         returnstring = SH.Build("QUP1");
                         //returnstring = "You were queued!";
                     }
                     else
                     {
                         returnstring = "Please enter one of the following queues: ";
                         foreach (string line in Queues.GetQueues())
                         {
                             returnstring += "\n -" + line;
                         }
                     }
                 }
                 catch
                 {
                     returnstring = "You are already queued.";
                 }
             }
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #9
0
 public void AdminMastery()
 {
     commands.CreateCommand("ConfigMastery")
     .Parameter("CommandType")
     .Parameter("Parameter", ParameterType.Optional)
     .Parameter("Points", ParameterType.Optional)
     .Do(async(e) =>
     {
         string returnstring       = "";
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         if (serverRepo.IsServerVerified(e.Server.Id) && serverRepo.IsAdmin(e.User.Id, e.Server.Id))
         {
             if (e.GetArg("CommandType") == "?" || e.GetArg("CommandType").ToLower() == "help")
             {
                 returnstring =
                     "**This command can be used to configure the Mastery Point system on your server.**" +
                     "\nUse *-ConfigMastery champion <champion>* to set a champion for your server:" +
                     "\nExample: -ConfigMastery champion Thresh" +
                     "\n\nUse *-ConfigMastery list* to get a list of all the roles you have set up." +
                     "\n\nUse *-ConfigMastery add <RoleName> <Amount>* to add a rank to the system:" +
                     "\nExample: -ConfigMastery add \"1 Million\" 1000000" +
                     "\n\nUse *-ConfigMastery remove <Points>* to remove a milestone rank:" +
                     "\nExample: -ConfigMastery remove 1000000";
             }
             else if (e.GetArg("CommandType").ToLower() == "champion")
             {
                 try
                 {
                     settingsRepo.SetChampionId(e.Server.Id, new ChampionAPI().GetChampionId(e.GetArg("Parameter").ToString()));
                     returnstring = "Champion set to " + e.GetArg("Parameter");
                 }
                 catch
                 {
                     returnstring = "Did not find champion called " + e.GetArg("Parameter");
                 }
             }
             else if (e.GetArg("CommandType").ToLower() == "list")
             {
                 try
                 {
                     returnstring = "Server looks at mastery points for " +
                                    new ChampionAPI().GetChampionName(
                         settingsRepo.GetChampionId(e.Server.Id));
                     returnstring += "\nRoles for this server: ```";
                     foreach (string line in settingsRepo.GetAllMasteryRoles(e.Server.Id))
                     {
                         returnstring += "\n" + line.Split(':').First() + " points uses role: " +
                                         e.Server.GetRole(Convert.ToUInt64(line.Split(':').Last())).Name;
                     }
                     returnstring += "\n```";
                 }
                 catch
                 {
                     returnstring = "No champion or role found, please set this up first!";
                 }
             }
             else if (e.GetArg("CommandType").ToLower() == "add")
             {
                 try
                 {
                     Discord.Role r = e.Server.FindRoles(e.GetArg("Parameter"), false).First();
                     settingsRepo.SetRoleByPoints(r.Id, e.Server.Id, Convert.ToInt32(e.GetArg("Points")));
                     returnstring = "Added to the list!";
                 }
                 catch
                 {
                     returnstring = "Failed to add, role not found.";
                 }
             }
             else if (e.GetArg("CommandType").ToLower() == "remove")
             {
                 try
                 {
                     settingsRepo.RemoveRoleByPoints(e.Server.Id, Convert.ToInt32(e.GetArg("Parameter")));
                     returnstring = "Removed the role with the points " + e.GetArg("Parameter");
                 }
                 catch
                 {
                     returnstring = "Failed to remove the role with points " + e.GetArg("Parameter");
                 }
             }
         }
         await e.Channel.SendMessage(returnstring);
     });
 }
예제 #10
0
 public void CreateRank()
 {
     commands.CreateCommand("CreateRoles")
     .Do(async(e) =>
     {
         SettingsRepo settingsRepo = new SettingsRepo(new SettingsContext());
         ServerRepo serverRepo     = new ServerRepo(new ServerContext());
         if (serverRepo.IsServerVerified(e.Server.Id))
         {
             if (settingsRepo.RankByAccount(e.Server.Id) || settingsRepo.RankByParameter(e.Server.Id))
             {
                 if (settingsRepo.RankCommandType(e.Server.Id) == CommandType.Basic)
                 {
                     try
                     {
                         await e.Server.CreateRole("Challenger", null, Color.Purple);
                         await e.Server.CreateRole("Master", null, new Color(255, 165, 0));
                         await e.Server.CreateRole("Diamond", null, new Color(0, 191, 255));
                         await e.Server.CreateRole("Platinum", null, new Color(0, 255, 127));
                         await e.Server.CreateRole("Gold", null, Color.Gold);
                         await e.Server.CreateRole("Silver", null, Color.LightGrey);
                         await e.Server.CreateRole("Bronze", null, new Color(139, 69, 19));
                     }
                     catch
                     {
                     }
                 }
                 else if (settingsRepo.RankCommandType(e.Server.Id) == CommandType.PerQueue)
                 {
                     await e.Server.CreateRole("Solo Challenger", null, Color.Purple);
                     await e.Server.CreateRole("Flex Challenger", null, Color.Purple);
                     await e.Server.CreateRole("3v3 Challenger", null, Color.Purple);
                     await e.Server.CreateRole("Solo Master", null, new Color(255, 165, 0));
                     await e.Server.CreateRole("Flex Master", null, new Color(255, 165, 0));
                     await e.Server.CreateRole("3v3 Master", null, new Color(255, 165, 0));
                     await e.Server.CreateRole("Solo Diamond", null, new Color(0, 191, 255));
                     await e.Server.CreateRole("Flex Diamond", null, new Color(0, 191, 255));
                     await e.Server.CreateRole("3v3 Diamond", null, new Color(0, 191, 255));
                     await e.Server.CreateRole("Solo Platinum", null, new Color(0, 255, 127));
                     await e.Server.CreateRole("Flex Platinum", null, new Color(0, 255, 127));
                     await e.Server.CreateRole("3v3 Platinum", null, new Color(0, 255, 127));
                     await e.Server.CreateRole("Solo Gold", null, Color.Gold);
                     await e.Server.CreateRole("Flex Gold", null, Color.Gold);
                     await e.Server.CreateRole("3v3 Gold", null, Color.Gold);
                     await e.Server.CreateRole("Solo Silver", null, Color.LightGrey);
                     await e.Server.CreateRole("Flex Silver", null, Color.LightGrey);
                     await e.Server.CreateRole("3v3 Silver", null, Color.LightGrey);
                     await e.Server.CreateRole("Solo Bronze", null, new Color(139, 69, 19));
                     await e.Server.CreateRole("Flex Bronze", null, new Color(139, 69, 19));
                     await e.Server.CreateRole("3v3 Bronze", null, new Color(139, 69, 19));
                 }
             }
             if (settingsRepo.RegionByAccount(e.Server.Id) || settingsRepo.RegionByParameter(e.Server.Id))
             {
                 foreach (string line in new RegionRepo(new RegionContext()).GetAllRegions())
                 {
                     try
                     {
                         Role r      = e.Server.FindRoles(line).First();
                         string test = r.Name;
                     }
                     catch
                     {
                         try
                         {
                             await e.Server.CreateRole(line);
                         }
                         catch
                         {
                             //ignored
                         }
                     }
                 }
             }
             await e.Channel.SendMessage("Roles created");
         }
     });
 }