ElegantNetworking, отправка пакета

Версия Minecraft
1.12.2
API
Forge
459
13
35
Всем привет. Не могу понять, как с помощью ElegantNetworking пакета передать информацию (ник игрока из аргумента команды) и получить его в событии.
Туплю, скорее всего, очень очевидно. Просветите, кому не сложно, заранее благодарен.
 
Решение
получить его в событии
Обработчик события принимает в аргументе событие, так что на первый взгляд он никак не может принять пакет.
Однако можно себе представить обработчик того и другого: метод, принимающий два аргумента - событие и пакет.
Java:
public static void epicHandler(SomeEvent e, SomePacket p) {...}
Но тот, кто будет вызывать этот обработчик должен обладать экземплярами и события, и пакета.
Тут есть несколько стратегий:
  1. SomePacket#onReceive сохраняет принятый пакет в глобальную переменную. Обычный обработчик события, если есть сохраненный пакет вызывает epicHandler и удаляет сохранённый пакет.
    • Можно повлиять на игру через событие, например, отменить его
    • Обработка пакета откладывается до...
7,099
324
1,510
получить его в событии
Обработчик события принимает в аргументе событие, так что на первый взгляд он никак не может принять пакет.
Однако можно себе представить обработчик того и другого: метод, принимающий два аргумента - событие и пакет.
Java:
public static void epicHandler(SomeEvent e, SomePacket p) {...}
Но тот, кто будет вызывать этот обработчик должен обладать экземплярами и события, и пакета.
Тут есть несколько стратегий:
  1. SomePacket#onReceive сохраняет принятый пакет в глобальную переменную. Обычный обработчик события, если есть сохраненный пакет вызывает epicHandler и удаляет сохранённый пакет.
    • Можно повлиять на игру через событие, например, отменить его
    • Обработка пакета откладывается до появления события
  2. Обычный обработчик события сохраняет событие в глобальную переменную. SomePacket#onReceive если есть сохраненное событие вызывает epicHandler и удаляет сохраненное событие
    • Пакет обрабатывается сразу
    • Некоторые пакеты могут быть просто отброшены, если событие возникает реже, чем отправляются пакеты
    • Доступный объект события по сути неизменяемый - через него уже нельзя повлиять на игру
    • Доступный объект события может быть неактуальным, если с момента его сохранения до приема пакета прошло много времени
  3. Че-то другое
Выбери, что подходит для твоей задачи
 
Сверху