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

Помогите Как получить список всех сгенерированных чанков на сервере

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

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

    mikinol Активный участник

    Баллы:
    61
    Я хочу написать плагин который раз в некоторое время будет просыпатся и удалять все чанки где игрок ни разу не ходил, но не понимаю как получить список всех сгенерированых чанков в мире
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    1) Сохранить все чанки принудительно на диск при помощи world.save()

    2) Прочитать каждый MCR-файл из world/region, чтобы получить список всех существующих чанков. Подробнее о MCR: https://minecraft.fandom.com/wiki/Region_file_format

    Учти, что при одновременном доступе к файлам мира из ядра и плагина могут возникнуть сложности. Поэтому я бы рекомендовал делать это не плагином, а отдельным java-приложением, которое надо будет запускать строго при остановленном сервере.

    Правда мне неясно, каким образом ты будешь определять, заходил ли какой-либо игрок в чанк.

    Помимо этого, данный плагин может негативно сказаться на производительности - гораздо быстрее загрузить чанк с диска, чем заново сгенерировать его. По этой причине публичные сервера часто ограничивают размер мира и наоборот генерируют все чанки заранее
     
  3. Автор темы
    mikinol

    mikinol Активный участник

    Баллы:
    61
    Это можно делать через getInhabitedTime() == 0
    Я собираюсь использовать его только перед вайпом чтобы сохранять себе этот мир
     
  4. just_lofe

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

    Баллы:
    66
    Имя в Minecraft:
    just_l0fe
    Так а просто world вытаскивать?
     

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