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

Exception_Prototype

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

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

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

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

Какие варианты для решения проблем выше можете предложить?
 
Последнее редактирование:
UPD
1. Первая проблема решается проверкой и телепортированием игрока наверх, если он при заходе на сервер находится в блоках, в мире, который есть в списке (т.е. в тот мир, который мог быть удалён и сгенерирован заново).
2. Кикать игроков вместо тп на хом, так как всё равно после этого последует выключение сервера и там уже всё равно.
Спасибо @alexandrage
 
Последнее редактирование:
Короче, те, кто захотят сделать удаление миров на 1.12 - делайте это при рестарте сервера до загрузки миров в onLoad, иначе гавном обмажетесь.
 
Короче, те, кто захотят сделать удаление миров на 1.12 - делайте это при рестарте сервера до загрузки миров в onLoad, иначе гавном обмажетесь.
Ну почему же? У меня все прекрасно удаляется..
 
хз, у меня не удалялись нормально. @xDark может подтвердить. В итоге сделали как я написал.
1. Ты должен его (мир) выгружат так: Bukkit.unloadWorld(world, true);
Удаление в той теме указано. //Просто можешь скопировать метод у меня.
 
1. Ты должен его (мир) выгружат так: Bukkit.unloadWorld(world, true);
Удаление в той теме указано. //Просто можешь скопировать метод у меня.
Я тебе говорю, не пашет такое выгружение на 1.12.1 у меня. Видос сделаешь, где покажешь, что у тебя так получилось?
 
Назад
Верх