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

[Решено] Копирование миров

Тема в разделе "Разработка плагинов для новичков", создана пользователем _Rudey_, 22 мар 2020.

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

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

    Баллы:
    76
    Имя в Minecraft:
    RudeyCoolLeet
    Сап, рубаккит.
    Пытаюсь копировать и прогружать миры, неоднократно видел соответствующие темы на зарубежных форумах.

    Делаю всё по такому принципу:
    Код:
            public static void copyWorld(String worldName, String newLocation, String... ignore) {
                ArrayList<String> ignored = new ArrayList<String>(Arrays.asList(ignore));
                for (File file : new File(worldName).listFiles()) {
                    if (!ignored.contains(file.getName())) {
                        if (file.isDirectory()) {
                            new File(newLocation + "\\" + file.getName()).mkdirs();
                            copyWorld(worldName + "\\" + file.getName(), newLocation + "\\" + file.getName() + "\\", ignore);
                        } else {
                            try {
                                InputStream in = new FileInputStream(file.getAbsolutePath());
                                OutputStream out = new FileOutputStream(newLocation.endsWith("\\")
                                        ? newLocation + file.getName() : newLocation + "\\" + file.getName());
                                byte[] buffer = new byte[1024];
                                int length;
                                while ((length = in.read(buffer)) > 0)
                                    out.write(buffer, 0, length);
                                in.close();
                                out.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
            
            public static World loadWorld(String worldName) {
                WorldCreator worldCreater = new WorldCreator(worldName);
                Bukkit.getServer().createWorld(worldCreater);
                return Bukkit.getWorld(worldName);
            }
    Проблема в том, что при выполнении функции loadWorld он не загружает мир, а создаёт новый, с новыми чанками. Что делать?
     
  2. Prot_CN

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

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    .createWorld -> создать новый мир
     
  3. Автор темы
    _Rudey_

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

    Баллы:
    76
    Имя в Minecraft:
    RudeyCoolLeet
    И как мне загрузить существующий в таком случае?
     
  4. alexandrage

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

    Баллы:
    173
    Точно так же.
     
  5. Автор темы
    _Rudey_

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

    Баллы:
    76
    Имя в Minecraft:
    RudeyCoolLeet
    Так а почему он новый мир генерирует?
     
  6. alexandrage

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

    Баллы:
    173
    Ну значит папка пустая или лвл дат нету.
     
  7. Автор темы
    _Rudey_

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

    Баллы:
    76
    Имя в Minecraft:
    RudeyCoolLeet
    upload_2020-3-22_16-6-36.png
     
  8. Автор темы
    _Rudey_

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

    Баллы:
    76
    Имя в Minecraft:
    RudeyCoolLeet
    Всё, я разобрался. Суть в том, что папки region не было. Закрываю тему
     
Статус темы:
Закрыта.

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