fCraft.RankManager.GetMinRankWithAnyPermission C# (CSharp) Method

GetMinRankWithAnyPermission() private method

private GetMinRankWithAnyPermission ( ) : Rank
return Rank
        public static Rank GetMinRankWithAnyPermission( [NotNull] params Permission[] permissions ) {
            if( permissions == null ) throw new ArgumentNullException( "permissions" );
            for( int r = Ranks.Count - 1; r >= 0; r-- ) {
                int r1 = r;
                if( permissions.Any( t => Ranks[r1].Can( t ) ) ) {
                    return Ranks[r];
                }
            }
            return null;
        }
    }

Usage Example

Example #1
0
        /// <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);
        }