Нету NBT

Версия Minecraft
1.16.5
API
Forge
30
3
2
Добрый день. Пишу код который при нажатии кнопки и определённом NBT теге выводит GUI добавил команду для установки этого NBT тега но когда я в InputEvents читаю этот тег то его нет хоть комманда data выводит правильное значение этого тега.
Команда:
public class SetBreathCommand{
    LiteralArgumentBuilder command = Commands.literal("setbreath").
            then(Commands.argument("target", EntityArgument.player()).
            then(Commands.argument("breath", StringArgumentType.string()).
            executes(context -> run(context))));
    public SetBreathCommand(CommandDispatcher<CommandSource> dispatcher)
    {
        dispatcher.register(command);
    }

    public int run(CommandContext<CommandSource> context) throws CommandSyntaxException {

        ServerPlayerEntity player = EntityArgument.getPlayer(context,"target");
        context.getSource().sendSuccess(new StringTextComponent("Succes"),true);
        String breath = StringArgumentType.getString(context, "breath");
        player.getPersistentData().putString(DemonSlayer.MOD_ID + ".breath",breath);
        return 0;
    }
}
Класс регистрации команды:
@Mod.EventBusSubscriber(modid = DemonSlayer.MOD_ID)
public class RegisterCommandsEvent {
    @SubscribeEvent
    public static void registerCommands(net.minecraftforge.event.RegisterCommandsEvent event)
    {
        new SetBreathCommand(event.getDispatcher());
        ConfigCommand.register(event.getDispatcher());
    }
    @SubscribeEvent
    public static void onPlayerCloneEvent(PlayerEvent.Clone event)
    {
        if (!event.getOriginal().level.isClientSide())
        {
            event.getPlayer().getPersistentData().putString(DemonSlayer.MOD_ID + ".breath", event.getOriginal().getPersistentData().getString(DemonSlayer.MOD_ID + ".breath"));
        }
    }
}
InputEvent:
    @SubscribeEvent
    public static void onKeyPress(InputEvent.KeyInputEvent event)
    {
        System.out.println(getInstance().player.getPersistentData().getString(DemonSlayer.MOD_ID + ".breath"));//Выводит пустую строку
        if (getInstance().screen == null) {if (RadialMenuKeybind.isDown() && getInstance().player.getMainHandItem().getItem() instanceof Nichirn && ((Nichirn) getInstance().player.getMainHandItem().getItem()).getBreath() == getInstance().player.getPersistentData().getString(DemonSlayer.MOD_ID + "breath")) {RadialMenuScreen.activate();}}
            else if (getInstance().screen == RadialMenuScreen.INSTANCE) {
                if (event.getAction() == 0 && event.getKey() == RadialMenuKeybind.getKey().getValue() && RadialMenuScreen.active) {
                RadialMenuScreen.deactivate();
                }
            }
        }
}
 
Последнее редактирование:
30
3
2
Спасибо сделал пакет через ElegantNetwork и оно заработало только теперь не сохраняется после выхода из мира.
Если я правильно понял надо сделать ивент захода игрока в мир в котором c сервера на клиент отправляется его NBT?
 
Сверху