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

Помогите Поиск и обновление большого кол-ва блоков

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

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

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

    Баллы:
    66
    Необходимо обновлять уровень роста всех имеющихся культур на сервере в определённое время (1 раз в игровые сутки). Если ли возможность реализовать подобное без лагов?
     
  2. Sturm_PT

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

    Баллы:
    76
    Недавно на этом форуме была статья про шедулеры, прочитай
     
  3. Krongss_fur

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

    Баллы:
    76
    Имя в Minecraft:
    Krong
    К примеру каждые сутки искать все культуры определённые и менять в них что то? А если этих культур около пару сотен потому что посеяли игроки? Нагрузки не будет? Я так предполагаю по очереди перебирать имеющиеся культуры и с ними работать.
    Хотя можно когда игрок ставить такую культуру записывать её в HashMap и число сколько уже оно выросло за эти сутки, так можно делать, когда должно вырасти несколько раз. А потом по очереди перебирать по этим ключам(Location) и обновлять.
     
  4. Sturm_PT

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

    Баллы:
    76
    Ага, именно
     
  5. Krongss_fur

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

    Баллы:
    76
    Имя в Minecraft:
    Krong
    https://rubukkit.org/threads/chto-takoe-scheduler.131796/ - BukkitSheduler - Таймер который будет срабатывать каждые игровые сутки(там надо в тики время суток перевести игры).
    HashMap/HashSet место где можно хранить локации культур данных.
     
  6. Автор темы
    ekbasiaa

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

    Баллы:
    66
    Я так понимаю.. лаги будут только от изменения блоков и если раскидаю по кускам, то +- норм? А сам таймер и перебор работают не в основном потоке?
     
  7. neverlessy

    neverlessy Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    neverlessy
    Как по мне правильней будет для каждого чанка создавать свой шедулер, если чанк прогружен - обновляешь.

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

    (естественно если в чанке есть твои культуры, а то 13821312 шедулеров не прикольн)
     
  8. Автор темы
    ekbasiaa

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

    Баллы:
    66
    А в чём смысл подобного?
     
  9. neverlessy

    neverlessy Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    neverlessy
    По сути я сказал как делать исходя из твоего сообщения. "Раскидывание по кускам". Или ты уже не понимаешь в чем смысл твоих же слов?
     
  10. Автор темы
    ekbasiaa

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

    Баллы:
    66
    Я имел ввиду просто сделать обновление блоков с интервалами) А создание сотен sheduler... хезе)
     
  11. OJIEKCAHDP

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

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Если без лагов, то в прогруженных чанках делать. Ещё можно выделить территорию (кубоид) и получать его чанки. Ну либо фулл мир, но это издевательство.
     
  12. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
  13. Автор темы
    ekbasiaa

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

    Баллы:
    66
    Не все конечно с моим уровнем знаний понятно, но суть ясна. Про sheduler нет желания тему написать?:h
    p.s. почини у себя хост)
     
  14. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    У меня недалеко валяется про базис работы.
     

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