1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите itemMeta.displayName(kyori component)

Тема в разделе "Разработка плагинов для новичков", создана пользователем ryfi, 26 мар 2022.

  1. Автор темы
    ryfi

    ryfi Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    шрифт устанавливается на italic (предмет как будто переименован)
    upload_2022-3-26_17-52-35.png
    upload_2022-3-26_17-52-53.png
    А нужно:
    upload_2022-3-26_17-56-35.png
    Версия сервера Paper 1.16.5 794
     

    Вложения:

  2. GhostSetuper

    GhostSetuper Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    BreyO4ko
    Попробуй создать переменную String с ChatColor:
    String test = ChatColor.of("#0xFF3700") + "Test123";
     
  3. swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Если он юзает kyori component, то ему не подходит вариант с ChatColor
     
  4. Автор темы
    ryfi

    ryfi Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    В моём случае я могу использовать только kyori component
     
  5. SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    А это обезательно использовать компонент из Paper? Не проще выбрать ядро для кода Spigot, а потом просто поставить этот плагин на Paper?
     
  6. GhostSetuper

    GhostSetuper Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    BreyO4ko
    Это API походу https://docs.adventure.kyori.net/text.html
     
  7. Автор темы
    ryfi

    ryfi Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    К сожалению нет.
     
  8. GhostSetuper

    GhostSetuper Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    BreyO4ko
    В примере что то показана
    Screenshot_1.png Screenshot_2.png
     
  9. Автор темы
    ryfi

    ryfi Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
  10. GhostSetuper

    GhostSetuper Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    BreyO4ko
    Я обычно всегда использую готовый API
     
  11. HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Я знаю, что ваниль показывает названия переименованных предметов в курсиве, если не стоит форматирование. По идее, с установкой цвета должно было пропасть, но на скрине в шапке видно, что не помогло. (Мб дело в том, что это rgb, а не обычный?)

    Проверь, установлен ли в названии предмета курсив вообще, после создания.
     
  12. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Короткий ответ:

    Установи своему компоненту значение italic в false:
    Component.text("Название").decoration(TextDecoration.ITALIC, false)


    Длинный ответ (почему так происходит):

    Влияет не только то, что предмет переименован, влияет ещё и наличие тега italic у компонента названия. По-умолчанию у названий предметов значение italic равно true (это значение подставляется на клиенте). Поэтому для отключения курсива необходимо явным образом перевести значение в false.

    Устаревший ItemMeta.setDisplayName(String) вызывает следующий код:
    CraftChatMessage.fromStringOrNullToJSON(name)
    Он накладывает значения false на все возможные типы форматирования.

    А вот при использовании ItemMeta.displayName(Component) выполняется следующий код:
    GsonComponentSerializer.gson().serialize(displayName)
    Данный сериализатор не добавляет теги форматирования полученным компонентам, поэтому и имеем такое поведение.

    upload_2022-3-29_3-54-13.png

    Аналогичное поведение будет получено при:
    1) Установке названия предметов
    2) Установке описания предметов
    3) Установке страниц книг (но, скорее всего, в этом случае клиент не добавляет italic)

    Ожидаемый ответ конрибьютора Adventure по поводу такого поведения: upload_2022-3-29_4-18-5.png

    Возможно стоило бы зарепортить это в Paper. Но сомневаюсь, что они согласятся исправлять
     
    Последнее редактирование: 18 окт 2022

Поделиться этой страницей