RankSystem.RankSystem.Rank C# (CSharp) Method

Rank() private static method

private static Rank ( TShockAPI.CommandArgs args ) : void
args TShockAPI.CommandArgs
return void
        private static void Rank(CommandArgs args)
        {
            if (args.Parameters.Count > 0)
            {
                if (args.Player.IsLoggedIn)
                {
                    string cmd = "help";
                    cmd = args.Parameters[0].ToLower();
                    switch (cmd)
                    {
                        case "change":
                            {
                                if (!args.Player.Group.HasPermission("dontrankme"))
                                {
                                    if (args.Parameters.Count > 1)
                                    {
                                        int RankLineID = GetRankLineIDByLineName(args.Parameters[1]);
                                        if (RankLineID >= 0)
                                        {
                                            if (!RankConfig.RankLineRestrictons[RankLineID])
                                            {
                                                Group Group = TShockAPI.TShock.Utils.GetGroup(RankConfig.Ranks[RankLineID][0]);
                                                List<SqlValue> list = new List<SqlValue>();
                                                List<SqlValue> where = new List<SqlValue>();
                                                where.Add(new SqlValue("Username", "'" + args.Player.UserAccountName + "'"));
                                                list.Add(new SqlValue("Usergroup", "'" + Group.Name + "'"));
                                                SQLEditor.UpdateValues("Users", list, where);
                                                args.Player.SendMessage("You changed rank from " + args.Player.Group.Name + " to " + Group.Name, Color.Green);
                                                args.Player.Group = Group;
                                            }
                                            else
                                                args.Player.SendMessage("That Rank Line is Restricted!", Color.Red);
                                        }
                                        else
                                            args.Player.SendMessage("There is no such rank line!", Color.Red);
                                    }
                                    else
                                    {
                                        args.Player.SendMessage("/rank change [Rank Line]", Color.Yellow);
                                        args.Player.SendMessage("Warning this will transfer you to the lowest rank in that Rank Line", Color.Yellow);
                                    }
                                }
                                else
                                    args.Player.SendMessage("You cannot change your Rank Line", Color.Red);

                                break;
                            }
                        case "check":
                            {
                                int RankLineID = GetRankLineIDByRank(args.Player.Group.Name);
                                int RankID = -1;
                                if(RankLineID >=0)
                                    RankID = GetRankID(args.Player.Group.Name, RankLineID);
                                if (RankID >= 0)
                                {
                                    args.Player.SendMessage(RankConfig.RankCheckMessage[RankLineID][RankID], Color.AntiqueWhite);
                                }
                                else
                                {
                                    args.Player.SendMessage("Your group: " + args.Player.Group.Name + " isn't part of the ranking system", Color.Red);
                                }
                                break;
                            }
                        case "up":
                            {
                                EPRPlayer player = ServerPointSystem.ServerPointSystem.GetEPRPlayerByIndex(args.Player.Index);
                                List<SqlValue> where2 = new List<SqlValue>();
                                where2.Add(new SqlValue("Username", "'" + args.Player.UserAccountName.ToString() + "'"));
                                int currbal = player.DisplayAccount;
                                int RankLineID = GetRankLineIDByRank(args.Player.Group.Name);
                                int RankID = -1;
                                if (RankLineID >= 0)
                                    RankID = GetRankID(args.Player.Group.Name, RankLineID);
                                if (RankID >= 0 && RankID < (RankConfig.Ranks[RankLineID].Length - 1))
                                {
                                    int RankUpCost = RankConfig.RankUpCost[RankLineID][RankID];
                                    if (currbal >= RankUpCost)
                                    {
                                        EPREvents.PointUse(player, RankUpCost, PointUsage.Rank);
                                        List<SqlValue> list2 = new List<SqlValue>();
                                        list2.Add(new SqlValue("Usergroup", "'" + RankConfig.Ranks[RankLineID][RankID + 1] + "'"));
                                        SQLEditor.UpdateValues("Users", list2, where2);
                                        args.Player.SendMessage(RankConfig.RankUpMessage[RankLineID][RankID], Color.AntiqueWhite);
                                        args.Player.Group = TShockAPI.TShock.Utils.GetGroup(RankConfig.Ranks[RankLineID][RankID + 1]);
                                    }
                                    else
                                    {
                                        args.Player.SendMessage(RankConfig.RankCheckMessage[RankLineID][RankID], Color.AntiqueWhite);
                                    }
                                }
                                else if (RankID >= 0 && RankID == (RankConfig.Ranks[RankLineID].Length - 1))
                                {
                                    args.Player.SendMessage(RankConfig.RankCheckMessage[RankLineID][RankID], Color.AntiqueWhite);
                                }
                                else
                                {
                                    args.Player.SendMessage("Your group: " + args.Player.Group.Name + " isn't part of the ranking system", Color.Red);
                                }
                                break;
                            }
                        default:
                            args.Player.SendMessage("Invalid Syntax! try:/rank up or /rank check or /rank change", Color.Yellow);
                            break;
                    }
                }
                else
                {
                    args.Player.SendMessage("You must be logged in to do that!", Color.Red);
                }

            }
            else
            {
                args.Player.SendMessage("Invalid Syntax! try:/rank up or /rank check or /rank change", Color.Yellow);
            }
        }