/// <summary> Checks if a zone name makes it a special zone, and if so, whether the player can manage the special zone. </summary>
public static bool CanManage(string name, Player player, string action)
{
if (name == null)
{
return(false);
}
Rank rank = RankManager.GetMinRankWithAnyPermission(Permission.ManageSpecialZones);
if (name.CaselessStarts(Command) || name.CaselessStarts(ConsoleCommand))
{
if (player.Info.Rank == RankManager.HighestRank && player.Can(Permission.ManageSpecialZones))
{
return(true);
}
if (rank != null)
{
player.Message("You must be {0}&S to {1} command zone.", RankManager.HighestRank.ClassyName, action);
}
else
{
player.Message("No rank has permission to {0} command zone.", action);
}
return(false);
}
else if (IsSpecialAffect(name) || IsSpecialMove(name))
{
if (player.Can(Permission.ManageSpecialZones))
{
return(true);
}
if (rank != null)
{
player.Message("You must be {0}&S to {1} special zone.", rank.ClassyName, action);
}
else
{
player.Message("No rank has permission to {0} special zone.", action);
}
return(false);
}
return(true);
}