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);
}
}