fCraft.MapCommands.Load C# (CSharp) Method

Load() private method

private Load ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        void Load( Player player, Command cmd ) {
            lock( loadLock ) {
                if( world.loadInProgress || world.loadSendingInProgress ) {
                    player.Message( "Loading already in progress, please wait." );
                    return;
                }
                world.loadInProgress = true;
            }

            if( !player.Can( Permissions.SaveAndLoad ) ) {
                world.NoAccessMessage( player );
                world.loadInProgress = false;
                return;
            }

            string mapName = cmd.Next();
            if( mapName == null ) {
                player.Message( "Syntax: " + Color.Help + "/load mapName" );
                world.loadInProgress = false;
                return;
            }

            string mapFileName = mapName + ".fcm";
            if( !File.Exists( mapFileName ) ) {
                player.Message( "No backup file \"" + mapName + "\" found." );
                world.loadInProgress = false;
                return;
            }

            Map newMap = Map.Load( world, mapFileName );
            if( newMap == null ) {
                player.Message( "Could not load \"" + mapFileName + "\". Check logfile for details." );
                world.loadInProgress = false;
                return;
            }

            if( newMap.widthX != world.map.widthX ||
                newMap.widthY != world.map.widthY ||
                newMap.height != world.map.height ) {
                player.Message( "Map sizes of \"" + mapName + "\" and the current map do not match." );
                world.loadInProgress = false;
                return;
            }

            world.log.Log( "{0} is loading the map \"{1}\".", LogType.UserActivity, player.name, mapName );
            player.Message( "Loading map \"" + mapName + "\"..." );
            world.BeginLockDown();
            MapSenderParams param = new MapSenderParams() {
                map = newMap,
                player = player,
                world = world
            };
            world.tasks.Add( MapSender.StreamLoad, param, true );
        }