- Хроники
- Prelude
- Harbingers of War
- Age of Splendor
- Rise of Darkness
- Scions of Destiny
- Oath of Blood
- Interlude
- The 1st Throne: The Kamael
- The 1st Throne: Hellbound
- The 2nd Throne: Gracia
- The 2nd Throne: Freya
- Chaotic Throne: High Five
- Goddess of Destruction Awakening
- Goddess of Destruction Harmony
- Goddess of Destruction Tauti
- Goddess of Destruction Glory Days
- Goddess of Destruction Lindvior
- Valliance / Epeisodion / Raiders
- Ertheia / Dimensional Strangers
- Infinite Odyssey
- Helios
- Grand Cursade
- Salvation
- Fafurion
- Shadow of the Kamael
- Исходники
- Отсутствуют
- Сборка
- нет
Бывают случаи, когда надо к примеру посмотреть, какие данные пришли от клиента в каком-то определенном пакете. Что обычно тогда делают?
Да, обычно просто втыкают в пакет вывод к примеру в консоль нужных считанных данных через System.out.println или log.info.
Зачастую это бывает не очень удобно, когда к примеру в пакете много полей и/или еще и часть шлется в цикле - в итоге приходится писать много временного кода.
Я же для своего удобства сделал вот такие вот простейшие методы:
Как оное работает? Легко и просто.
Достаточно в начало readImpl в нужного пакета, добавить до считывания данных из буфера основным кодом метода вызов метода dumpBufferData, передав ему в качестве параметров буфер с данными приходящими в пакет и указав строкой формат данных в этом буфере и при приходе этого пакета серверу мы получим в консоли пришедшие данные в читабельном виде.
В качестве строки формата передается структура пакета с указанием какого типа данные считать по очереди из буфера. Поддерживаемые типы:
Для примера возьмем пакет RequestBuyItem, в котром передаются в начале dd и потом в цикле dq. Чтобы показать пришедшие в него данные, достаточно в начало readImpl добавить такую строчку:
Сам код метода вроде достаточно примитивный и должен работать на любой сборке. Ну может чуть-чуть где и придется что поправить.
Так же метод может пригодиться в ситуации когда точная структура пакета неизвестна и считываемые поля подбираются методом тыка - в этом случае тоже удобно быстро меняя формат получаемых данных для метода добиваться в итоге вменяемых отображаемых данных.
Да, обычно просто втыкают в пакет вывод к примеру в консоль нужных считанных данных через System.out.println или log.info.
Зачастую это бывает не очень удобно, когда к примеру в пакете много полей и/или еще и часть шлется в цикле - в итоге приходится писать много временного кода.
Я же для своего удобства сделал вот такие вот простейшие методы:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Как оное работает? Легко и просто.
Достаточно в начало readImpl в нужного пакета, добавить до считывания данных из буфера основным кодом метода вызов метода dumpBufferData, передав ему в качестве параметров буфер с данными приходящими в пакет и указав строкой формат данных в этом буфере и при приходе этого пакета серверу мы получим в консоли пришедшие данные в читабельном виде.
В качестве строки формата передается структура пакета с указанием какого типа данные считать по очереди из буфера. Поддерживаемые типы:
- c - byte;
- h - short;
- d - integer;
- q - long;
- f - double;
- b - byte array;
- s - string.
Для примера возьмем пакет RequestBuyItem, в котром передаются в начале dd и потом в цикле dq. Чтобы показать пришедшие в него данные, достаточно в начало readImpl добавить такую строчку:
Java:
dumpBufferData(getButeBuffer(), "dd(dq)");
Сам код метода вроде достаточно примитивный и должен работать на любой сборке. Ну может чуть-чуть где и придется что поправить.
Так же метод может пригодиться в ситуации когда точная структура пакета неизвестна и считываемые поля подбираются методом тыка - в этом случае тоже удобно быстро меняя формат получаемых данных для метода добиваться в итоге вменяемых отображаемых данных.
Последнее редактирование: