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

Помогите [Решено] Удаление миров

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

  1. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Собственно данная тема спровоцировала меня поднять давно интересующий меня вопрос.
    Время от времени нужно удалять некоторые миры, чтобы они заново сгенерировались и наполнились ресурсами(особенно миры из мода).

    Короче, есть в конфиге лист миров. По команде все эти миры должны быть удалены, а сервер выключен. Давайте разберём по пунктам:

    1. Ввод команды;
    2. По циклу берём каждое название мира из конфига;
    3. Получаем мир (Bukkit.createWorld(new WorldCreator(worldName));) //так мы его либо получим либо загрузим, так сказать одним выстрелом 2-х зайцев. Объект мира нужен для получения его папки.
    4. Всех игроков тпхаем на хом;
    5. Выгружаем мир (из упомянутой темы выше мы знаем как это сделать правильно);
    6. Удаляем указанный мир (опять же смотрим тему выше);
    7. Выводим сообщение об удачной или не очень попытке удалить миры.

    Проблемы:
    1. Самая главная проблема это то, что делать с игроками, которые вышли в мире, который был удалён и сгенерирован по новой. Ибо когда они зайдут, то могут появится в блоках или, к примеру, в лаве.
    2. Может быть такое, что хом игрока может быть установлен в мире, который должен будет выгрузиться и удалиться. Соответственно, когда дело доходит до выгрузки - нас посылают из-за того, что в мире есть игроки, так как его хом в том мире и он с него никуда не делся.

    Какие варианты для решения проблем выше можете предложить?
     
    Последнее редактирование: 4 июн 2018
  2. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    UPD
    1. Первая проблема решается проверкой и телепортированием игрока наверх, если он при заходе на сервер находится в блоках, в мире, который есть в списке (т.е. в тот мир, который мог быть удалён и сгенерирован заново).
    2. Кикать игроков вместо тп на хом, так как всё равно после этого последует выключение сервера и там уже всё равно.
    Спасибо @alexandrage
     
    Последнее редактирование: 4 июн 2018
  3. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Короче, те, кто захотят сделать удаление миров на 1.12 - делайте это при рестарте сервера до загрузки миров в onLoad, иначе гавном обмажетесь.
     
  4. Akultist

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

    Баллы:
    46
    Ну почему же? У меня все прекрасно удаляется..
     
  5. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    хз, у меня не удалялись нормально. @xDark может подтвердить. В итоге сделали как я написал.
     
  6. Akultist

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

    Баллы:
    46
    1. Ты должен его (мир) выгружат так: Bukkit.unloadWorld(world, true);
    Удаление в той теме указано. //Просто можешь скопировать метод у меня.
     
  7. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Я тебе говорю, не пашет такое выгружение на 1.12.1 у меня. Видос сделаешь, где покажешь, что у тебя так получилось?
     
  8. Akultist

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

    Баллы:
    46
    Эм.. Ок, сейчас, у меня 1.12.2
     
  9. Akultist

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

    Баллы:
    46
    Вот:
     
  10. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Окей, допустим. Попробуй удалить своим способом ад и край.
     

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