- 188
- 2
- 36
Годно!Бдыщ! Обнова подлетела!
Продолжай =)
Годно!Бдыщ! Обнова подлетела!
[09:41:16] [Client thread/FATAL] [minecraft/Minecraft]: Error executing task
java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 0
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_181]
at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_181]
at net.minecraft.util.Util.runTask(Util.java:54) [Util.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1178) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:442) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at hohserg.elegant.networking.impl.DataUtils2.unserialize(DataUtils2.java:230) ~[DataUtils2.class:?]
at hohserg.elegant.networking.impl.DataUtils2.unserialize(DataUtils2.java:246) ~[DataUtils2.class:?]
at hohserg.elegant.networking.impl.DataUtils2.unserialize(DataUtils2.java:40) ~[DataUtils2.class:?]
at hohserg.elegant.networking.impl.CCLNetworkImpl.readObjectFromPacket(CCLNetworkImpl.java:78) ~[CCLNetworkImpl.class:?]
at hohserg.elegant.networking.impl.CCLNetworkImpl.onReceiveClient(CCLNetworkImpl.java:63) ~[CCLNetworkImpl.class:?]
at hohserg.elegant.networking.impl.CCLNetworkImpl.lambda$registerChannel$0(CCLNetworkImpl.java:84) ~[CCLNetworkImpl.class:?]
at codechicken.lib.packet.PacketCustom$ClientInboundHandler.handle(PacketCustom.java:110) ~[PacketCustom$ClientInboundHandler.class:?]
at codechicken.lib.packet.PacketCustom$ClientInboundHandler.lambda$handle$0(PacketCustom.java:108) ~[PacketCustom$ClientInboundHandler.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_181]
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) ~[?:1.8.0_181]
at java.util.concurrent.FutureTask.run(FutureTask.java) ~[?:1.8.0_181]
at net.minecraft.util.Util.runTask(Util.java:53) ~[Util.class:?]
... 15 more
Почему?Массивы не поддерживаются
Процессор аннотаций обновился до 2.3
Мод-либа портирована на 1.7.10
- Появилась поддержка перечислений(enum)
- Появилась поддержка массивов
Спасибо @jopi за черновой вариант порта!
Использовании процессора аннотаций на 1.7.10 работает черезcompileOnly "io.gitlab.hohserg.elegant.networking:annotation-processor:2.3"
Теперь корректно подключается через мавен
compileOnly "io.gitlab.hohserg.elegant.networking:annotation-processor:2.4"
ета кнш круто,но пошёл бы ты поспал,окес?При сборке генерирует сериализующий код. В качестве пакетной системы используется CCL, она быстрая и кросс-версионная
Добавлена поддержка сериализации следующих типов:
Добавлекна возможность переопределять логику сериализавции у своих типов.
- NbtTagCompound
- ItemStack
- FluidStack
- Item
- Block
- Fluid
- ResourceLocation
- UUID
См. интерфейс IByteBufSerializable для подробностей юза
compile "io.gitlab.hohserg.elegant.networking:elegant-networking-1.12:2.2"
compileOnly "io.gitlab.hohserg.elegant.networking:annotation-processor:2.7"
Внутреннее исправление коллизии id пакетов, на использовании никак не отразится
Мод-либа портирована на 1.14, 1.15 и 1.16!
Теперь зависимость от CCL опциональна! На всех версиях игры!(которые поддерживаются фреймворком)
Если в сборке есть CCL - будет использоваться ее пакетная система.
Если нету - будет использоваться обычная, которую предлагает Forge.
Большое спасибо @Wild tan() за черновой вариант реализации Network на пакетной системе Forge для 1.14+
каст к object.вообще чего угодно
А терь придумай как хандлер с принимающей стороны сделать. Он будет принимать Object? Тогда он должен быть один на всю сторону. И что, мы возвращаемся к пакетам CCL? Они по сути так и устроены - отправляем че угодно отовсюду, принимает в одной точке - только без автосериализации.Идея для обновы: возможность передачи вообще чего угодно через один и тот же метод)
Это кст не сработает. Процессор аннотаций ищет реализации класса поля вплоть до финальных в пределах package класса поля. Поэтому он не найдет всех тех классов, что будут пихаться в поле в рантайме, ведь они будут в другом package, нежели Object. Зато он найдет кучу классов, которые не связаны с передаваемыми данными, но находятся в одном package вместе с Object.каст к object.
Мод-либа теперь доступна на курсе: curseforge.com/elegant-networking
Теперь проще распространять паблик-моды с элегантными пакетами
Появился логотип! Спасибо @Liahim за него)
Теперь процессор аннотаций учитывает поля и методы из супер-классов