- Баллы
- 76
- Имя в Minecraft
- witwar
Здравствуйте, форумчане. Решил посмотреть в сторону Kotlin'а как языка для Spigot плагинов. Начал писать на нём плагин с функциями для лобби (блоки не-ломаемые, NPC, музыка), я не мазохист, поэтому подключил ProtocolLib. Покопавшись с ошибками и старыми темами на американских форумах нашёл ДАННУЮ ТЕМКУ, решил адаптировать исходя из Issue'шок ProtocolLib до текущей версии. Начал получать DataWatcher'ы, проблема возникла на моменте получения сериалайзеров.
Сама суть проблемы - Kotlin имеет свою имплементацию типов (они представляются в виде отдельных классов либы). При получении сериалайзеров, мне необходимо в метод Registry.get() передать класс, но т.к. это не обычная Java, там нету её стандартных классов представляющих типы (Integer, Byte, Float, Double) и Kotlin передаёт туда объект класса своей имплементации, по которой соответственно ничего из Registry получить не удаётся и он выкидывает экзепшн.
Мои версии:
- ProtocolLib - 4.7.0
- PacketWrapper - 1.12.1-R0-1 (добавил из локального файла, билд взял с CI, номер #69)
- Paper - 1.12.2-R0.1
- kotlin-stdlib-jdk8 - 1.4.32
- maven-failsafe-plugin - 2.22.2
- maven-surefire-plugin - 2.22.2
- maven-shade-plugin 3.2.4
- kotlin-maven-plugin 1.4.32
Скрин самой ошибки:
- [ТЫК]
Соурс-код файла ProtocolNPC (файл логики NPC):
- [ТЫК]
Файл с полным экзепшном (текстом):
- [ТЫК]
Сама суть проблемы - Kotlin имеет свою имплементацию типов (они представляются в виде отдельных классов либы). При получении сериалайзеров, мне необходимо в метод Registry.get() передать класс, но т.к. это не обычная Java, там нету её стандартных классов представляющих типы (Integer, Byte, Float, Double) и Kotlin передаёт туда объект класса своей имплементации, по которой соответственно ничего из Registry получить не удаётся и он выкидывает экзепшн.
Мои версии:
- ProtocolLib - 4.7.0
- PacketWrapper - 1.12.1-R0-1 (добавил из локального файла, билд взял с CI, номер #69)
- Paper - 1.12.2-R0.1
- kotlin-stdlib-jdk8 - 1.4.32
- maven-failsafe-plugin - 2.22.2
- maven-surefire-plugin - 2.22.2
- maven-shade-plugin 3.2.4
- kotlin-maven-plugin 1.4.32
Скрин самой ошибки:
- [ТЫК]
Соурс-код файла ProtocolNPC (файл логики NPC):
- [ТЫК]
Файл с полным экзепшном (текстом):
- [ТЫК]
