Отправить серверу пакет и получить ответ

Сообщения
688
Лучшие ответы
15
Реакции
19
Версия Minecraft
1.12.2
Как можно сделать так чтобы клиент отправлял пакет с каким-то запросом, а серверы бы этот пакет обработал и выдал клиенту ответный пакет? Я могу так сделать с помощью двух разных пакетов, но это муторно, не удобно и займёт много времени. Может есть какой-нибудь более лёгкий способ реализации такой схемы?
 

timaxa007

Модератор
Сообщения
5,620
Лучшие ответы
371
Реакции
570
На серверной стороне Handler это пакета, сразу писать пакет для отправки на клиент.
 
Сообщения
688
Лучшие ответы
15
Реакции
19
@timaxa007, я бы так бы и делал бы, но мне такой способ не подходит.
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,430
Лучшие ответы
368
Реакции
1,695
У IMessageHandler метод onMessage возвращает IMessage, который будет отправлен в ответ. Если нулл - ничего не будет отправлено.
 
Сообщения
590
Лучшие ответы
25
Реакции
107
А ты видел это? [1.7.2][Tutorial]Netty Packet Handling - удобная система пакетов
Я просто использовал именно такой подход начиная с 1.47 и любой пакет содержал в себе код как клиентской, так и серверной стороны.
А чтобы на сервере всё работало правильно, приходилось делить мод на две части. Но сейчас есть способы получше, которые позволяют настраивать сборщики jar через аннотации так, чтобы они сами помещали нужную часть кода на нужную сторону, жаль они не умеют разделять import которые собственно и создают краш на серверной стороне.

И даже если это не подойдет, то что мешает тебе отправить тот же самый пакет обратно? У каждого пакета как минимум есть его
packetId, по которому приемник или отправитель понимает какой пакет к каком классу относится. Что мешает тебе отправить его же обратно, только пустым.

И судя поэтому коду, так ничего и не изменилось. У пакета по прежнему нет стороны
[1.12] Sending a packet from the server to the client
просто надо проверять на какой из сторон мы его обрабатываем как полученный
 
Последнее редактирование:

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,430
Лучшие ответы
368
Реакции
1,695
Сверху