fCraft.PlayerDB.MassRankChange C# (CSharp) Method

MassRankChange() public static method

public static MassRankChange ( Player player, Rank from, Rank to, bool silent ) : int
player Player
from Rank
to Rank
silent bool
return int
        public static int MassRankChange( Player player, Rank from, Rank to, bool silent ) {
            if( player == null ) throw new ArgumentNullException( "player" );
            if( from == null ) throw new ArgumentNullException( "from" );
            if( to == null ) throw new ArgumentNullException( "to" );
            int affected = 0;
            lock( AddLocker ) {
                foreach( PlayerInfo info in List ) {
                    if( info.Rank == from ) {
                        ModerationCommands.DoChangeRank( player, info, to, "~MassRank", silent, false );
                        affected++;
                    }
                }
                return affected;
            }
        }

Same methods

PlayerDB::MassRankChange ( [ player, [ fromRank, [ toRank, [ reason ) : int

Usage Example

        static void MassRankHandler(Player player, CommandReader cmd)
        {
            string fromRankName = cmd.Next();
            string toRankName   = cmd.Next();
            string reason       = cmd.NextAll();

            if (fromRankName == null || toRankName == null)
            {
                CdMassRank.PrintUsage(player);
                return;
            }

            Rank fromRank = RankManager.FindRank(fromRankName);

            if (fromRank == null)
            {
                player.MessageNoRank(fromRankName);
                return;
            }

            Rank toRank = RankManager.FindRank(toRankName);

            if (toRank == null)
            {
                player.MessageNoRank(toRankName);
                return;
            }

            if (fromRank == toRank)
            {
                player.Message("Ranks must be different");
                return;
            }

            int playerCount;

            using (PlayerDB.GetReadLock()) {
                playerCount = PlayerDB.List.Count(t => t.Rank == fromRank);
            }
            string verb = (fromRank > toRank ? "demot" : "promot");

            if (!cmd.IsConfirmed)
            {
                player.Confirm(cmd, "MassRank: {0}e {1} players?", verb.UppercaseFirst(), playerCount);
                return;
            }

            player.Message("MassRank: {0}ing {1} players...",
                           verb, playerCount);

            int affected = PlayerDB.MassRankChange(player, fromRank, toRank, reason);

            player.Message("MassRank: done, {0} records affected.", affected);
        }