- Баллы
- 76
Нужно отправлять игроку строку с плейсхолдерами, одним из которых будет является какой-то айтемстак.
Вся сложность в том, что строка настраивается в конфиге как обычное сообщение с применением плейсхолдеров, которые я в коде свапаю на нужные значения.
И вот, когда я имею уже готовый компонент, созданный из строки конфига, мне осталось всего-лишь заменить %resource% на сам айтемстак. Делаю всё так
но проблема в том, что компонент с названием предмета отправляется без применения к нему окраски и остальных плюшек kyori minimessage, в отличии от остальной строки.
И вот у меня такой вопросик... Как можно применить к компоненту с названием предмета такие же minimessage, как и к остальной строке, при этом вставив его к первому компоненту как свап плейсхолдера?


Вся сложность в том, что строка настраивается в конфиге как обычное сообщение с применением плейсхолдеров, которые я в коде свапаю на нужные значения.
И вот, когда я имею уже готовый компонент, созданный из строки конфига, мне осталось всего-лишь заменить %resource% на сам айтемстак. Делаю всё так
Код:
@Override
public Component getResourceComponent(ItemStack itemStack, int value) {
return ColorUtil.colorizeComponent(resourceText)
.replaceText(builder -> builder
.match(AMOUNT)
.replacement(String.valueOf(value)))
.replaceText(builder -> builder
.match(TYPE)
.replacement(itemStack.getType().name().toLowerCase(Locale.ROOT)))
.replaceText(builder -> builder
.match(RESOURCE)
.replacement(Component.translatable(itemStack.getTranslationKey())));
}
И вот у меня такой вопросик... Как можно применить к компоненту с названием предмета такие же minimessage, как и к остальной строке, при этом вставив его к первому компоненту как свап плейсхолдера?