Синхронизация капабилити в сущностях

Версия Minecraft
1.12.2
7,099
324
1,509
Сделал капу для сущности из другого мода. При перезаходе в мир на клиентской стороне капа пустая(значения по умолчанию). Как правильно синхронизировать капу в сущностях?
Допустим, при изменении отправлять пакет всем в радиусе.
А при заходе игрока на сервер? Искать вокруг него сущности и отправлять для них?
Заранее спасибо за ответы.
 
7,099
324
1,509
Щас попробую
~~~
Java:
@SubscribeEvent
public static void onEntityTrack(PlayerEvent.StartTracking event) {
    if (!event.getTarget().world.isRemote && event.getTarget() instanceof EntityInterface) {
        System.out.println("test");
        PacketController.sendToClient(new OpenEditorPacket((EntityInterface) event.getTarget(), -1/[I]great kostyl[/I]/), (EntityPlayerMP) event.getEntityPlayer());
    }
}
1569189903259.png
Тот же самый пакет, но отправленный в другое время(когда мир уже загружен нормально отрабатывает
 
7,099
324
1,509
Чё-то про пакет движения сущности, типо он null
Крашик не связан с моим кодом про стактрэйсу
 
Последнее редактирование:
7,099
324
1,509
Код:
[01:07:10] [main/FATAL] [minecraft/Minecraft]: Error executing task
java.util.concurrent.ExecutionException: java.lang.NullPointerException
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_152]
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_152]
    at net.minecraft.util.Util.runTask(Util.java:54) [Util.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1177) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:441) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152]
    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_152]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: java.lang.NullPointerException
    at net.minecraft.client.network.NetHandlerPlayClient.handleEntityVelocity(NetHandlerPlayClient.java:572) ~[NetHandlerPlayClient.class:?]
    at net.minecraft.network.play.server.SPacketEntityVelocity.processPacket(SPacketEntityVelocity.java:94) ~[SPacketEntityVelocity.class:?]
    at net.minecraft.network.play.server.SPacketEntityVelocity.processPacket(SPacketEntityVelocity.java:11) ~[SPacketEntityVelocity.class:?]
    at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) ~[PacketThreadUtil$1.class:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_152]
    at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) ~[?:1.8.0_152]
    at java.util.concurrent.FutureTask.run(FutureTask.java) ~[?:1.8.0_152]
    at net.minecraft.util.Util.runTask(Util.java:53) ~[Util.class:?]
    ... 15 more
 
Сверху