Воссоздайте пакет рукопожатия Spigot / Bukkit с TCP-сервера на клиент Minecraft - PullRequest
0 голосов
/ 27 марта 2020

Я хочу воссоздать рукопожатие сервера для клиента Minecraft. Как я могу ответить на пинг Клиента с Tcp-сервером. Шаги протокола перечислены прямо здесь. https://wiki.vg/Server_List_Ping#1 .6 Сервер-клиент.

Проверка входящего пакета не важна.

Причина в двух случаях:

  1. Клиент хочет получить статус сервера (Motd, PlayerCount) с помощью рукопожатия Это пакет с начальным байтом (0xFE)
  2. Клиент хочет присоединиться (не важно, потому что у меня нет настоящий M C сервер)

Вот почему я хочу отправить пакет HandshakeStatusPacket обратно.

Я пытался отправить это обратно:

output.write(0xFF);

String s = "§1";
s.getBytes(Charset.forName("UTF-16BE"));

ByteBuffer bb = ByteBuffer.allocate(8);
bb.order(ByteOrder.BIG_ENDIAN);
bb.putShort((short) s.length());
output.write((int) '§');
output.write((int) '1');`

Не получается так хорошо ..

Так что мне нужен способ отправить правильный пакет рукопожатия обратно.

...