Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Всем привет. Не могу понять, как с помощью ElegantNetworking пакета передать информацию (ник игрока из аргумента команды) и получить его в событии.
Туплю, скорее всего, очень очевидно. Просветите, кому не сложно, заранее благодарен.
Обработчик события принимает в аргументе событие, так что на первый взгляд он никак не может принять пакет.
Однако можно себе представить обработчик того и другого: метод, принимающий два аргумента - событие и пакет.
Java:
public static void epicHandler(SomeEvent e, SomePacket p) {...}
Но тот, кто будет вызывать этот обработчик должен обладать экземплярами и события, и пакета.
Тут есть несколько стратегий:
SomePacket#onReceive сохраняет принятый пакет в глобальную переменную. Обычный обработчик события, если есть сохраненный пакет вызывает epicHandler и удаляет сохранённый пакет.
Можно повлиять на игру через событие, например, отменить его
Обработчик события принимает в аргументе событие, так что на первый взгляд он никак не может принять пакет.
Однако можно себе представить обработчик того и другого: метод, принимающий два аргумента - событие и пакет.
Java:
public static void epicHandler(SomeEvent e, SomePacket p) {...}
Но тот, кто будет вызывать этот обработчик должен обладать экземплярами и события, и пакета.
Тут есть несколько стратегий:
SomePacket#onReceive сохраняет принятый пакет в глобальную переменную. Обычный обработчик события, если есть сохраненный пакет вызывает epicHandler и удаляет сохранённый пакет.
Можно повлиять на игру через событие, например, отменить его
Обработка пакета откладывается до появления события
Обычный обработчик события сохраняет событие в глобальную переменную. SomePacket#onReceive если есть сохраненное событие вызывает epicHandler и удаляет сохраненное событие
Пакет обрабатывается сразу
Некоторые пакеты могут быть просто отброшены, если событие возникает реже, чем отправляются пакеты
Доступный объект события по сути неизменяемый - через него уже нельзя повлиять на игру
Доступный объект события может быть неактуальным, если с момента его сохранения до приема пакета прошло много времени