Перенос NBT умершего на нового Player

Версия Minecraft
1.20.1
API
Fabric
Приветствую, ищу способ как перенести nbt умершего player на нового(для того, что бы при смерти nbt переносилось). Я думаю, что ServerPlayerEvents.AfterRespawn поможет мне с этим, прописал эвент, который не работает:
PlayerSpawnHandler:
public class PlayerSpawnHandler implements ServerPlayerEvents.AfterRespawn {
@Override
    public void afterRespawn(ServerPlayerEntity oldPlayer, ServerPlayerEntity newPlayer, boolean alive) {

PacketByteBuf buffer = PacketByteBufs.create();

if (oldPlayer instanceof IEntityDataSaver DatSaverPlayer){

buffer.writeInt(DatSaverPlayer.getPersistentData().getInt("maxmana"));

        }
if (newPlayer instanceof IEntityDataSaver DatSaverPlayer){
MAXMANAData.addMaxMana(DatSaverPlayer, buffer.readInt());}
ServerPlayNetworking.send(newPlayer, ModMessages.MAXMANA_SYNC_ID, buffer);

newPlayer.sendMessage(Text.literal("Maxmana sync succ"));


buffer = PacketByteBufs.create();

if (oldPlayer instanceof IEntityDataSaver DatSaverPlayer){

buffer.writeInt(DatSaverPlayer.getPersistentData().getInt("mana"));

        }
if (newPlayer instanceof IEntityDataSaver DatSaverPlayer){
ManaData.addMana(DatSaverPlayer, buffer.readInt());
        }
ServerPlayNetworking.send(newPlayer, ModMessages.MANA_SYNC_ID, buffer);

newPlayer.sendMessage(Text.literal("Mana sync Succ"));

    }
}
P.S:не ругайтесь на instanceof, я знаю что надо было бы изначально 2 переменные сделать, а потом вызывать их. Это просто прототип
MaxmanaSyncS2CPacket:
public class MaxmanaSyncS2CPacket {
    public static void receive(MinecraftClient client, ClientPlayNetworkHandler handler,
                               PacketByteBuf buf, PacketSender responseSender) {
        if (client.player instanceof IEntityDataSaver playerDataSaver) {
            playerDataSaver.getPersistentData().putInt("maxmana", buf.readInt());
        }

    }
}
Хотелось бы узнать, есть ли способ покрасивее, и если нет, то помочь с этим кодом либо предложить свой.
 
Краш-лог
[13:07:23] [Netty Local Client IO #2/ERROR] (ClientPlayNetworkAddon for Player946) Encountered exception while handling in channel with name "rpserver-fighting:maxmana_sync"
java.lang.IndexOutOfBoundsException: readerIndex(0) + length(4) exceeds writerIndex(0): UnpooledSlicedByteBuf(ridx: 0, widx: 0, cap: 0/0, unwrapped: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0))
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1442) ~[netty-buffer-4.1.82.Final.jar:?]
at io.netty.buffer.AbstractByteBuf.readInt(AbstractByteBuf.java:809) ~[netty-buffer-4.1.82.Final.jar:?]
at net.minecraft.network.PacketByteBuf.readInt(PacketByteBuf.java:2286) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.lil_requiem.networking.packet.MaxmanaSyncS2CPacket.receive(MaxmanaSyncS2CPacket.java:13) ~[main/:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:98) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:40) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
at net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon.handle(AbstractChanneledNetworkAddon.java:101) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.handle(ClientPlayNetworkAddon.java:90) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
at net.minecraft.client.network.ClientPlayNetworkHandler.handler$zma000$fabric-networking-api-v1$handleCustomPayload(ClientPlayNetworkHandler.java:3065) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.client.network.ClientPlayNetworkHandler.onCustomPayload(ClientPlayNetworkHandler.java) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket.apply(CustomPayloadS2CPacket.java:60) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket.apply(CustomPayloadS2CPacket.java:36) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.network.ClientConnection.handlePacket(ClientConnection.java:197) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.network.ClientConnection.channelRead0(ClientConnection.java:184) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at net.minecraft.network.ClientConnection.channelRead0(ClientConnection.java:491) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:299) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.doBeginRead(LocalChannel.java:322) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.beginRead(AbstractChannel.java:834) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.read(DefaultChannelPipeline.java:1362) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:686) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:671) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline.read(DefaultChannelPipeline.java:1004) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannel.read(AbstractChannel.java:290) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.readIfIsAutoRead(DefaultChannelPipeline.java:1422) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelReadComplete(DefaultChannelPipeline.java:1417) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:410) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:397) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelReadComplete(DefaultChannelPipeline.java:925) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:302) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:445) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:50) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:403) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:?]
at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Краш-лог:
[13:07:23] [Netty Local Client IO #2/ERROR] (ClientPlayNetworkAddon for Player946) Encountered exception while handling in channel with name "rpserver-fighting:maxmana_sync"
 java.lang.IndexOutOfBoundsException: readerIndex(0) + length(4) exceeds writerIndex(0): UnpooledSlicedByteBuf(ridx: 0, widx: 0, cap: 0/0, unwrapped: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0))
	at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1442) ~[netty-buffer-4.1.82.Final.jar:?]
	at io.netty.buffer.AbstractByteBuf.readInt(AbstractByteBuf.java:809) ~[netty-buffer-4.1.82.Final.jar:?]
	at net.minecraft.network.PacketByteBuf.readInt(PacketByteBuf.java:2286) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.lil_requiem.networking.packet.MaxmanaSyncS2CPacket.receive(MaxmanaSyncS2CPacket.java:13) ~[main/:?]
	at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:98) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
	at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:40) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
	at net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon.handle(AbstractChanneledNetworkAddon.java:101) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
	at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.handle(ClientPlayNetworkAddon.java:90) ~[fabric-networking-api-v1-1.3.11+1802ada577.jar:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.handler$zma000$fabric-networking-api-v1$handleCustomPayload(ClientPlayNetworkHandler.java:3065) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.onCustomPayload(ClientPlayNetworkHandler.java) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket.apply(CustomPayloadS2CPacket.java:60) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket.apply(CustomPayloadS2CPacket.java:36) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.network.ClientConnection.handlePacket(ClientConnection.java:197) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.network.ClientConnection.channelRead0(ClientConnection.java:184) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at net.minecraft.network.ClientConnection.channelRead0(ClientConnection.java:491) ~[minecraft-merged-a4b002cb63-1.20.1-net.fabricmc.yarn.1_20_1.1.20.1+build.10-v2.jar:?]
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:299) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel.doBeginRead(LocalChannel.java:322) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannel$AbstractUnsafe.beginRead(AbstractChannel.java:834) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.read(DefaultChannelPipeline.java:1362) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:686) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:671) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline.read(DefaultChannelPipeline.java:1004) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannel.read(AbstractChannel.java:290) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.readIfIsAutoRead(DefaultChannelPipeline.java:1422) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelReadComplete(DefaultChannelPipeline.java:1417) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:410) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:397) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline.fireChannelReadComplete(DefaultChannelPipeline.java:925) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:302) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:445) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:50) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:403) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:?]
	at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) ~[netty-transport-4.1.82.Final.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:?]
	at java.lang.Thread.run(Thread.java:1583) ~[?:?]
445
42
117
Подобные ошибки связаны с
if (oldPlayer instanceof IEntityDataSaver DatSaverPlayer){ buffer.writeInt(DatSaverPlayer.getPersistentData().getInt("mana")); } if (newPlayer instanceof IEntityDataSaver DatSaverPlayer){ ManaData.addMana(DatSaverPlayer, buffer.readInt()); } ServerPlayNetworking.send(newPlayer, ModMessages.MANA_SYNC_ID, buffer); newPlayer.sendMessage(Text.literal("Mana sync Succ")); } }
Так делать нельзя.

Если в пакет записано ровно 2 числа - то должно быть прочитано так же ровно 2 числа. Ни больше, ни меньше.
Если ты не знаешь сколько чисел считывать - то как вариант записать 1-е число (количество), и после числа, и при чтении считать количество и уже потом содержимое
 
Если в пакет записано ровно 2 числа - то должно быть прочитано так же ровно 2 числа. Ни больше, ни меньше.
Если ты про buffer, то я в 19 строке его очищаю, видел метод clear, но либо я что то не так делаю, либо clear очищает что то другое. Если ты про те пакеты, которые я отправляю, то тут тоже самое, я считываю с старого player и отправляю к новому player, потом очищаю buffer, потом снова считываю с старого player и отправляю к новому player, попутно синхронизируя. buffer это временная переменная, в которую удобно сложить одно число и позже взять его.
Возможно я тебя не понял, такое тоже может быть, но я не понимаю, где я мог сложить в пакет 2 числа.
 
445
42
117
Это не меняет суть ошибки
Так делать нельзя.

Если в пакет записано ровно 2 числа - то должно быть прочитано так же ровно 2 числа. Ни больше, ни меньше.
Гарантированно записывай в буфер ровно 1 число или ровно 2 числа, и считывай столько-же

У меня сложилось мнение, что условия 7, 12 (или 21, 26) не выполнились - в буфер ничего не записалось, ты отправил пустой буфер и пытаешься что-то читать
 
У меня сложилось мнение, что условия 7, 12 (или 21, 26) не выполнились - в буфер ничего не записалось, ты отправил пустой буфер и пытаешься что-то читать
Возможно ты прав, тем более, что если лог читать, то не похоже, что 12 выполнился, сейчас перепишу с использованием alive и скажу работает или нет
 
переписал таким образом:

afterRespawn:
@Override
    public void afterRespawn(ServerPlayerEntity oldPlayer, ServerPlayerEntity newPlayer, boolean alive) {

        PacketByteBuf buffer1 = PacketByteBufs.create();
        PacketByteBuf buffer2 = PacketByteBufs.create();

        if (oldPlayer instanceof IEntityDataSaver DatSaverPlayer){

            buffer1.writeInt(DatSaverPlayer.getPersistentData().getInt("maxmana"));
            buffer2.writeInt(DatSaverPlayer.getPersistentData().getInt("mana"));

        }
        if (newPlayer instanceof IEntityDataSaver DatSaverPlayer && alive){
            MAXMANAData.addMaxMana(DatSaverPlayer, buffer1.readInt());
            ManaData.addMana(DatSaverPlayer, buffer2.readInt());
        }
        ServerPlayNetworking.send(newPlayer, ModMessages.MAXMANA_SYNC_ID, buffer1);
        newPlayer.sendMessage(Text.literal("Maxmana sync succ"));
        ServerPlayNetworking.send(newPlayer, ModMessages.MANA_SYNC_ID, buffer2);
        newPlayer.sendMessage(Text.literal("Mana sync Succ"));

    }
Он не крашит майн, но и не работает как надо, mana и maxmana не переносятся
 
445
42
117
Так делать нельзя.

Если в пакет записано ровно 2 числа - то должно быть прочитано так же ровно 2 числа. Ни больше, ни меньше.
Я имел в виду нечто подобное.
Если по каким-то причинам у тебя будет -1 при чтении - то это уже проблема на уровне бизнес-логики, а не на сетевом. Твой код ошибки - конкретно сетевой уровень

Java:
void sendSomething(Object... obj){
    PacketByteBuf buf = PacketByteBufs.create();
    int data = -1;
    
    //do something

    if(someLogick){
        data = 10;
    }
    //ровно 1 раз записывай. БЕЗ УСЛОВИЙ
    buf.writeInt(data);
}


void read(PacketByteBuf buf){
    //ровно 1 раз читай. БЕЗ УСЛОВИЙ
    int data = buf.readInt();
    
    if(data == -1){
        //do something
    } else {
        //do something
    }
}
 
Я забыл, что в addMana/addMaxMana синхронизация уже прописана, так что 17, 19 строки не нужны. Но проблемы это не решает
Прошу прощения, я имел ввиду, что так как синхронизации не нужны, то и использование buffer тоже, так что я вполне могу использовать переменные. Но опять же, проблему с переносом nbt из умершего в нового Player это не решает. Если можешь помочь с этим, то буду очень благодарен
 
Последнее редактирование:
Сверху