protected void prepareBackup() {

        // start broadcast informing the players about the backup
        String startBackupMessage = pSystem.getStringProperty(STRING_START_BACKUP_MESSAGE);
        if (startBackupMessage != null && !startBackupMessage.trim().isEmpty()) {
            System.out.println(startBackupMessage);
            server.broadcastMessage(startBackupMessage);
        }

        // a hack like methode to send the console command for disabling every world save
        ConsoleCommandSender ccs = new ConsoleCommandSender(server);
        server.dispatchCommand(ccs, "save-all");
        server.dispatchCommand(ccs, "save-off");

        // the Player Position are getting stored
        server.savePlayers();

        // get the names of the worlds which shall not backuped
        String[] ignoredWorlds = getToIgnoreWorlds();
        LinkedList<String> worldsToBackup = new LinkedList<String>();

        // shall the backups stored and compress via ZIP?
        boolean hasToZIP = pSystem.getBooleanProperty(BOOL_ZIP);
            if (!hasToZIP)
                // send a hint, because this shall not be the normal case!
                System.out.println("[BACKUP] Backup compression is disabled.");

        // iterate through all worlds and filter the one, that shall get backuped!
        outer:
        for (World world : server.getWorlds()) {
            String worldName = world.getName();
            for (String ignoredWorldName : ignoredWorlds) {
                if (ignoredWorldName.equalsIgnoreCase(worldName))
                    continue outer;
            }
            worldsToBackup.add(worldName);
            world.save();
        }
        server.getScheduler().scheduleAsyncDelayedTask(server.getPluginManager().getPlugin("Backup"), new BackupTask(pSystem,worldsToBackup,server,backupName));
        backupName = null;
        isManuelBackup = false;
    }