Войти или зарегистрироваться

Помогите Не меняется название предмета в кастомном крафте

Статус
Закрыто для дальнейших ответов.

just_lofe

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
just_l0fe
Мне нужно создать кастомный крафт с изменённым названием, рецепт создан, а название не меняется.
Ядро использую Paper - 1.19.2
Код:
ItemStack itemStack = new ItemStack(Material.SHEARS);
NamespacedKey masterKey = new NamespacedKey(this, "masterKey");
ShapedRecipe s = new ShapedRecipe(masterKey, itemStack);
itemStack.getItemMeta().displayName(Component.text("§dОтмычка"));
s.shape ("ARA", "RBR", "ARA");
s.setIngredient('B', Material.SHEARS);
s.setIngredient('R', Material.REDSTONE);
s.setIngredient('A', Material.AIR);
Bukkit.addRecipe(s);
 
ItemStack#getItemMeta() дает тебе копию меты. Для применения нужно обратно установить её.
PHP:
ItemMeta meta = itemStack.getItemMeta();
meta.displayName(LegacyComponentSerializer.legacyAmperstand("&dОтмычка"));
itemStack.setItemMeta(meta);
Либо воспользоваться ItemStack#editMeta
PHP:
itemStack.editMeta(meta -> meta.displayName(Component.text("Отмычка", NamedTextColor.LIGHT_PURPLE))

P.s. Использование § не рекомендуется, поэтому заменил на два более правильных варианта.
 
ItemStack#getItemMeta() дает тебе копию меты. Для применения нужно обратно установить её.
PHP:
ItemMeta meta = itemStack.getItemMeta();
meta.displayName(LegacyComponentSerializer.legacyAmperstand("&dОтмычка"));
itemStack.setItemMeta(meta);
Либо воспользоваться ItemStack#editMeta
PHP:
itemStack.editMeta(meta -> meta.displayName(Component.text("Отмычка", NamedTextColor.LIGHT_PURPLE))

P.s. Использование § не рекомендуется, поэтому заменил на два более правильных варианта.

Попробовал, не сработало.
 

Вложения:

  • sNfqyIbqNo.png
    sNfqyIbqNo.png
    9,2 КБ · Просмотры: 7
Нашёл решение, оказалось что при установке в onEnable мета почему-то не сохранялась, создал отдельный метод - всё заработало.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх