fCraft.BuildingCommands.CopySlotHandler C# (CSharp) Method

CopySlotHandler() private static method

private static CopySlotHandler ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        private static void CopySlotHandler( Player player, Command cmd )
        {
            int slotNumber;
            if ( cmd.NextInt( out slotNumber ) ) {
                if ( cmd.HasNext ) {
                    CdCopySlot.PrintUsage( player );
                    return;
                }
                if ( slotNumber < 1 || slotNumber > player.Info.Rank.CopySlots ) {
                    player.Message( "CopySlot: Select a number between 1 and {0}", player.Info.Rank.CopySlots );
                } else {
                    player.CopySlot = slotNumber - 1;
                    CopyState info = player.GetCopyInformation();
                    if ( info == null ) {
                        player.Message( "Selected copy slot {0} (unused).", slotNumber );
                    } else {
                        player.Message( "Selected copy slot {0}: {1} blocks from {2}, {3} old.",
                                        slotNumber, info.Buffer.Length,
                                        info.OriginWorld, DateTime.UtcNow.Subtract( info.CopyTime ).ToMiniString() );
                    }
                }
            } else {
                CopyState[] slots = player.CopyInformation;
                player.Message( "Using {0} of {1} slots. Selected slot: {2}",
                                slots.Count( info => info != null ), player.Info.Rank.CopySlots, player.CopySlot + 1 );
                for ( int i = 0; i < slots.Length; i++ ) {
                    if ( slots[i] != null ) {
                        player.Message( "  {0}: {1} blocks from {2}, {3} old",
                                        i + 1, slots[i].Buffer.Length,
                                        slots[i].OriginWorld, DateTime.UtcNow.Subtract( slots[i].CopyTime ).ToMiniString() );
                    }
                }
            }
        }