Удаление мира

  • Автор темы Автор темы Akultist
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Akultist

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
Name
У меня есть мир в котором есть игроки. Мне нужно удалить мир, делаю это я вот так:
Код:
for (Player p: player) {
            p.teleport(loc); //Телепортация всех игроков с мира
        }
        
        if (w != null) { //Проверяю существует ли этот мир
            File file = w.getWorldFolder(); //Получаю директорию с файлами мира
            Bukkit.unloadWorld(w, false); //Выгружаю мир без сохранения
            
                CMD.deleteWorld(file); //Удаляю мир
        }

Метод удаления:
Код:
public static boolean deleteWorld(File path) {
        if (path.exists()) { //Проверка на существование этого файла
            File files[] = path.listFiles(); //Получение списка файлов в файле (так я это понял :D)
            for (int i = 0; i < files.length; i++) { //Цикл из файлов которые были в файле (Ещё лучше :D)
                if (files[i].isDirectory()) { //Если файл находится в директории
                    deleteWorld(files[i]); //Удалить этот файл (Вызываем метод с самого начала)
                } else {
                    files[i].delete(); //Удаляем файл
                }
            }
        }
        return (path.delete()); //Возращяем удалился ли файл?
    }

В ИТОГЕ: Все удаляется, кроме папки region (которая в папке с названием мира). Я так понял это папка с прогруженными чанками игроками. Но как удалить мне эту папку region? Она удаляется только тогда, когда этот код выполняется при выключения плагина, тогда она удаляется. А так в любом случаи остается.

Что делать? Как удалить эту папку? Помогите..
 
Вопрос решен. Я просто изменил Bukkit.unloadWorld(w, false); на Bukkit.unloadWorld(w, true);

Возможно это недочет со стороны ведра, но не суть.
 
1. Зачем удалять мир, если можно отменить его сохранение? И просто выгружать и загружать.
2. Я давно делал нечто подобное с удалением миров. Есть у кого годный вариант с теми, кто вышел в мире, который был удалён и сгенерирован заново?
 
Последнее редактирование:
У меня есть мир в котором есть игроки. Мне нужно удалить мир, делаю это я вот так:
Код:
for (Player p: player) {
            p.teleport(loc); //Телепортация всех игроков с мира
        }
       
        if (w != null) { //Проверяю существует ли этот мир
            File file = w.getWorldFolder(); //Получаю директорию с файлами мира
            Bukkit.unloadWorld(w, false); //Выгружаю мир без сохранения
           
                CMD.deleteWorld(file); //Удаляю мир
        }

Метод удаления:
Код:
public static boolean deleteWorld(File path) {
        if (path.exists()) { //Проверка на существование этого файла
            File files[] = path.listFiles(); //Получение списка файлов в файле (так я это понял :D)
            for (int i = 0; i < files.length; i++) { //Цикл из файлов которые были в файле (Ещё лучше :D)
                if (files[i].isDirectory()) { //Если файл находится в директории
                    deleteWorld(files[i]); //Удалить этот файл (Вызываем метод с самого начала)
                } else {
                    files[i].delete(); //Удаляем файл
                }
            }
        }
        return (path.delete()); //Возращяем удалился ли файл?
    }

В ИТОГЕ: Все удаляется, кроме папки region (которая в папке с названием мира). Я так понял это папка с прогруженными чанками игроками. Но как удалить мне эту папку region? Она удаляется только тогда, когда этот код выполняется при выключения плагина, тогда она удаляется. А так в любом случаи остается.

Что делать? Как удалить эту папку? Помогите..
Можешь пожалуйста в ЛС кинуть код копирования мира, а то у меня сервер зависает на время копирования ☹️
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх