Помогите HandlerList - отменить регистрацию слушателя

  • Автор темы Автор темы DonDays
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

DonDays

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
DonDays
Здравствуйте, не могу отменить регистрацию слушателя в плагине. Вот, как я ее произвожу:
Главный класс:
Код:
private Waiting waiting;
public void startGame()
{
waiting.unregister();
}
Слушатель:
Код:
public void unregister()
{
HandlerList.unregisterAll(this);
}
 
Up. Очень нужна помощь
 
Пишу мини-игру, работает хорошо. Сейчас я снимаю регистрацию со всего плагина, и потом регистрирую нужные евенты. Но помимо них, у меня есть слушатели не относящиеся к игре. Слушатель чата и т.д. Но мне нужно снять регистрацию только со слушателя Waiting, ибо мне потом приходится заново регистрировать основные слушатели, которые, как я уже говорил, не имеют отношения к мини-игре
 
Пишу мини-игру, работает хорошо. Сейчас я снимаю регистрацию со всего плагина, и потом регистрирую нужные евенты. Но помимо них, у меня есть слушатели не относящиеся к игре. Слушатель чата и т.д. Но мне нужно снять регистрацию только со слушателя Waiting, ибо мне потом приходится заново регистрировать основные слушатели, которые, как я уже говорил, не имеют отношения к мини-игре
К чему такие сложности?
@EventHandler
on(Некий ивент e) {
if(!isActive) return;
...
}
 
Проверка через boolean будет грузить сервер. Нужно снять с евентов регистрацию
latest
 
Наверное, кому-то стоит по секрету рассказать ТС-у, что +1 слушатель где-то в коллекции внутри сервера всё равно прибавит одну операцию сравнения к времянке при итерировании слушателей.
 
Наверное, кому-то стоит по секрету рассказать ТС-у, что +1 слушатель где-то в коллекции внутри сервера всё равно прибавит одну операцию сравнения к времянке при итерировании слушателей.
:D. И все-же, почему я не могу снять регистрацию слушателя?
 
В HandlerList.unregisterAll() передаётся плагин (тогда ВСЕ слушатели плагина снимаются с регистрации), либо объект Listender, чтобы отменить регистрацию всех его @EventHandler'ов.
Это я знаю, поэтому и пишу - HandlerList.unregisterAll(слушатель);, но в консоль выдает ошибку. Никаких Caused by и т.д. нет, простая ошибка. Слушатель не снимается. Кстати, HandlerList.unregisterAll() снимает регистрацию не с плагина, а со всех слушателей, даже в сторонних плагинах.
 
Ошибку хоть напиши то тогда.
 
Ошибку хоть напиши то тогда.
Уже пробовал по-разному. Пришел к выводу, что буду отменять регистрацию со всего плагина, а потом снова регистрировать нужные слушатели. Закрыто
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх