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

Помогите Заморозка плагина

ReloGGrc

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
ALis
Подскажите как организовать ожидание плагина во время включения.
В общем есть метод который в асинхронном режиме загружает все настройки конфигурации, и сразу за методом идёт регистрация ивентов, но некоторые ивенты регистрируются только в случае если это включено в настройках.
И даже если регистрация ивента включена в настройках, то таск не успевает к этому моменту загрузить эту настройку из конфига, и ивент не регистрируется. Помогите пожалуйста.

Ответы по поводу проверять в самом ивенте не пишите, так как помимо ивентов есть ещё другие функции с которыми происходит такая же ситуация
 
Для начала сам продумай, как должен работать твой плагин в момент, когда конфиги не загружены. Должны отменяться различные события или игнорироваться?
Или ты хочешь приостановить работу сервера, пока конфиги не загружены?
 
Для начала сам продумай, как должен работать твой плагин в момент, когда конфиги не загружены. Должны отменяться различные события или игнорироваться?
Или ты хочешь приостановить работу сервера, пока конфиги не загружены?

Ну, если есть вариант приостановить работу сервера пока конфиг не загружен, то можешь подсказать как? Это не критично(думаю) так как занимает не более 50мс
 
Ну, если есть вариант приостановить работу сервера пока конфиг не загружен, то можешь подсказать как? Это не критично(думаю) так как занимает не более 50мс
Чтобы приостановить работу сервера - достаточно просто выполнять загрузку конфига в основном потоке сервера. Но игроки эту просадку в 50 мс вполне себе могут ощутить. Если ты готов пойти на такое, то просто загружаешь конфиг синхронно и после этого производишь регистрацию слушателей
 
Чтобы приостановить работу сервера - достаточно просто выполнять загрузку конфига в основном потоке сервера. Но игроки эту просадку в 50 мс вполне себе могут ощутить. Если ты готов пойти на такое, то просто загружаешь конфиг синхронно и после этого производишь регистрацию слушателей
Агась, понял, ладно, сделаю так, а потом может походу дела что-нибудь и скостыляю)

Спасибо за ответ!
 
Агась, понял, ладно, сделаю так, а потом может походу дела что-нибудь и скостыляю)

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

В момент перезагрузки конфига можно, например, регистрировать слушатель, который отменяет все необходимые события. Как только загрузка завершена - снимать регистрацию с этого слушателя
 
По-хорошему, конечно, подобные вещи делать асинхронно. Но тогда надо быть готовым к тому, что поведение некоторых механик не будет определено во время перезагрузки.

В момент перезагрузки конфига можно, например, регистрировать слушатель, который отменяет все необходимые события. Как только загрузка завершена - снимать регистрацию с этого слушателя
Та я в общем немного переделал ход кода, так что пока оставил асинхронный режим как загрузки так и перезагрузки конфига, и вроде все работает.

Но в любом случае, спасибо за совет!)
 

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

Назад
Верх