Помогите BungeeCord TextComponent и String

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

Limon-mine

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Limon_MineDel
Есть у меня list в конфиге я его конвертирую в строку.

for (String s : main.instance.config.getStringList("alert-newpost")) {

И там мне надо заменять 2 слова на TextComponent, но так выдаёт ошибку, но если textcomponent.tostring() то там системный текст показано на скрине.
Как мне заменять в строке слова на textcomponent?
 

Вложения

  • 2022-01-03_16-56-38.png
    2022-01-03_16-56-38.png
    28,5 КБ · Просмотры: 11
Если тебе нужно сделать одно слово к примеру кликабельным, то используй что-то типо такого:

Код:
                BaseComponent clickable = new TextComponent("КЛИК");
                clickable.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "url"));
                BaseComponent baseComponent = new TextComponent("Кликабельное слово: ");
                baseComponent.addExtra(clickable);
                p.sendMessage(baseComponent);

А если тебе нужно из TextComponent получить текст, то textComponent.toLegacyText();
 
Если тебе нужно сделать одно слово к примеру кликабельным, то используй что-то типо такого:

Код:
                BaseComponent clickable = new TextComponent("КЛИК");
                clickable.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "url"));
                BaseComponent baseComponent = new TextComponent("Кликабельное слово: ");
                baseComponent.addExtra(clickable);
                p.sendMessage(baseComponent);

А если тебе нужно из TextComponent получить текст, то textComponent.toLegacyText();
У меня есть в конфиге например такой лист
list:
- 'Привет '
- 'Группа в вк {vk}'
- 'Дискорд {discord} '
Я знаю как их сделать кликабельными, но мне надо заменять {vk} и {discord} на кликабельные. назвстр.replace("{vk}", vk) не получится, а как заменять в строке слова на textcomponent я больше не знаю.
 
У меня есть в конфиге например такой лист
list:
- 'Привет '
- 'Группа в вк {vk}'
- 'Дискорд {discord} '
Я знаю как их сделать кликабельными, но мне надо заменять {vk} и {discord} на кликабельные. назвстр.replace("{vk}", vk) не получится, а как заменять в строке слова на textcomponent я больше не знаю.
Тебе придется создавать textComponent для каждого отдельного компонента строки. Затем сложить их все вместе.
 
Тебе придется создавать textComponent для каждого отдельного компонента строки. Затем сложить их все вместе.
А как мне разделить list из конфига преобразованный в строку?
 
Типо такого варианта тут наговнокодить получилось

Код:
public void tc(){
    String listLine = "Группа в вк %vk";
    String placeholder = "%vk";
    TextComponent tc = new TextComponent("");
    if(listLine.contains(placeholder)){
        String[] args = listLine.split(placeholder);
        int i = 0;
        for(String s : args){
            i++;
            tc.addExtra(s);
            if(i == 1 || i < args.length){
                TextComponent link = new TextComponent("ССЫЛКА");
                link.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://vk.com/группа"));
                tc.addExtra(link);
            }
        }
    }
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх