Bukkit <=> Client?

Версия Minecraft
1.16.5
API
Forge
24
1
Привет! Я хочу обмениваться информацией между Spigot plugin и Forge client. В версии 1.12.2, он был создан с помощью ClientCustomPacketEvent. Как мне это сделать в 1.16.5 и выше?
 

Icosider

Kotliner
Администратор
3,603
99
664
В плагине, где-то в onEnable:
Java:
getServer().getMessenger().registerOutgoingPluginChannel(this, "YourChannel");

Далее отправляешь пакет так:
Java:
byte[] bytes = new byte[...];// Можно иначе, но это лишь пример
player.sendPluginMessage(this, "YourChannel", bytes);

На клиенте тебе нужно зарегистрировать канал NetworkRegistry#newSimpleChannel, создаёшь пакет, который необходимо зарегистрировать в своём канале. И потом читаешь данные из буффера.
 
24
1
В плагине, где-то в onEnable:
Java:
getServer().getMessenger().registerOutgoingPluginChannel(this, "YourChannel");

Далее отправляешь пакет так:
Java:
byte[] bytes = new byte[...];// Можно иначе, но это лишь пример
player.sendPluginMessage(this, "YourChannel", bytes);

На клиенте тебе нужно зарегистрировать канал NetworkRegistry#newSimpleChannel, создаёшь пакет, который необходимо зарегистрировать в своём канале. И потом читаешь данные из буффера.
Разве нет какого-то события, когда клиент может обнаруживать пакеты, отправленные сервером?
 

Icosider

Kotliner
Администратор
3,603
99
664
А ещё ID пакета нужно записывать/читать со стороны "ведра". Само оно так не умеет без написания нормальной пакетной системы.
Думаю в этом нет ничего сложного, ведь id пакета это первый байт в массиве.
 
Сверху