public override void Use(Player p, string message)
{
if (message.Split(' ').Length < 2)
{
Help(p); return;
}
Player who = Player.Find(message.Split(' ')[0]);
Group newRank = Group.Find(message.Split(' ')[1]);
string msgGave;
if (message.Split(' ').Length > 2)
{
msgGave = message.Substring(message.IndexOf(' ', message.IndexOf(' ') + 1));
}
else
{
msgGave = "Congratulations!";
}
if (newRank == null)
{
Player.SendMessage(p, "Could not find specified rank."); return;
}
Group bannedGroup = Group.findPerm(LevelPermission.Banned);
if (who == null)
{
string foundName = message.Split(' ')[0];
if (Group.findPlayerGroup(foundName) == bannedGroup || newRank == bannedGroup)
{
Player.SendMessage(p, "Cannot change the rank to or from \"" + bannedGroup.name + "\".");
return;
}
if (p != null)
{
if (Group.findPlayerGroup(foundName).Permission >= p.group.Permission || newRank.Permission >= p.group.Permission)
{
Player.SendMessage(p, "Cannot change the rank of someone equal or higher than you"); return;
}
}
Group oldGroup = Group.findPlayerGroup(foundName);
oldGroup.playerList.Remove(foundName);
oldGroup.playerList.Save();
newRank.playerList.Add(foundName);
newRank.playerList.Save();
Player.GlobalMessage(foundName + " &f(offline)" + Server.DefaultColor + "'s rank was set to " + newRank.color + newRank.name);
}
else if (who == p)
{
Player.SendMessage(p, "Cannot change your own rank."); return;
}
else
{
if (p != null)
{
if (who.group == bannedGroup || newRank == bannedGroup)
{
Player.SendMessage(p, "Cannot change the rank to or from \"" + bannedGroup.name + "\".");
return;
}
if (who.group.Permission >= p.group.Permission || newRank.Permission >= p.group.Permission)
{
Player.SendMessage(p, "Cannot change the rank of someone equal or higher to yourself."); return;
}
}
who.group.playerList.Remove(who.name);
who.group.playerList.Save();
newRank.playerList.Add(who.name);
newRank.playerList.Save();
Player.GlobalChat(who, who.color + who.name + Server.DefaultColor + "'s rank was set to " + newRank.color + newRank.name, false);
Player.GlobalChat(null, "&6" + msgGave, false);
who.group = newRank;
who.color = who.group.color;
Player.GlobalDie(who, false);
who.SendMessage("You are now ranked " + newRank.color + newRank.name + Server.DefaultColor + ", type /help for your new set of commands.");
Player.GlobalSpawn(who, who.pos[0], who.pos[1], who.pos[2], who.rot[0], who.rot[1], false);
}
}