1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Akultist, 4 июн 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    У меня есть мир в котором есть игроки. Мне нужно удалить мир, делаю это я вот так:
    Код:
    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? Она удаляется только тогда, когда этот код выполняется при выключения плагина, тогда она удаляется. А так в любом случаи остается.

    Что делать? Как удалить эту папку? Помогите..
     
  2. -=ApOsTaL=-

    -=ApOsTaL=- Активный участник

    Баллы:
    61
    Я обычно делаю так:

    try{
    FileUtils.deleteDirectory(toReset);
    }catch (IOException localIOException1) {

    }
     
  3. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Ошибки нет.. Просто все удаляется кроме папки region
     
  4. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Вот видео:

    Думаю так будет понятней
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Мир выгрузить пробовал перед удалением?
     
  6. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Ты код видел который сверху?

    Bukkit.unloadWorld(w, false); //Выгружаю мир без сохранения
     
  7. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Вопрос решен. Я просто изменил Bukkit.unloadWorld(w, false); на Bukkit.unloadWorld(w, true);

    Возможно это недочет со стороны ведра, но не суть.
     
  8. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    1. Зачем удалять мир, если можно отменить его сохранение? И просто выгружать и загружать.
    2. Я давно делал нечто подобное с удалением миров. Есть у кого годный вариант с теми, кто вышел в мире, который был удалён и сгенерирован заново?
     
    Последнее редактирование: 4 июн 2018
  9. l_Slime_l

    l_Slime_l Активный участник Пользователь

    Баллы:
    76
    Можешь пожалуйста в ЛС кинуть код копирования мира, а то у меня сервер зависает на время копирования :(
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Писец ты лох. Отдельный трейд юзай.
     
  11. l_Slime_l

    l_Slime_l Активный участник Пользователь

    Баллы:
    76
    Всё равно немного подлагивает.
     
Статус темы:
Закрыта.

Поделиться этой страницей