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

Помогите Две json кнопки в одном сообщении

Тема в разделе "Разработка плагинов для новичков", создана пользователем loredmaxed3, 14 фев 2023.

Метки:
Статус темы:
Закрыта.
  1. Автор темы
    loredmaxed3

    loredmaxed3 Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    loredmaxed3
    Есть 2 json кнопки которые хорошо работают в двух разных пустых сообщениях (тоесть там только по 1 кнопке). Но когда пытаюсь их соединить в одно, получаю не то, что-бы хотелось. Не то что бы это проблема, но приятней было бы видеть две кнопки в одной строке.

    https://yapx.ru/album/VgG2Y

    Вот код, которым я пытался это сделать:
    String json_agree = "{\"text\":\"[Подтвердить]\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/biz selltostate_user_agree_button\"},\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"text\":\"Нажмите, что-бы подтвердить продажу\",\"color\":\"dark_green\"}]}}";
    String json_disagree = "{\"text\":\"[Отклонить]\",\"color\":\"dark_red\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/biz selltostate_user_disagree_button\"},\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"text\":\"Нажмите, что-бы отклонить продажу\",\"color\":\"dark_red\"}]}}";

    sender.sendMessage(ComponentSerializer.parse(json_agree) + " " + ComponentSerializer.parse(json_disagree));

    [​IMG]
     
  2. ReloGGrc

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

    Баллы:
    46
    Имя в Minecraft:
    ALis
    Ну, как вариант, через два разных компонента.
    HTML:
    TextComponent c1 = new TextComponent("[Подтвердить] ");
    c1.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/biz selltostate_user_agree_button"));
    c1.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, "Нажмите чтобы подтвердить продажу");
    
    TextComponent c2 = new TextComponent("[Отклонить] ");
    c2.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/biz selltostate_user_disagree_button"));
    c2.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, "Нажмите чтобы отклонить продажу");
    
    c1.addExtra(c2);
    
    player.spigot().sendMessage(c1);
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Компоненты нельзя объединять при помощи плюса, это не строки и не числа.
    Метод .sendMessage() принимает массив BaseComponent.
    А ComponentSerializer.parse() как раз возвращает массив BaseComponent.
    Таким образом, тебе необходимо объединить два массива в один, чтобы отправить игроку.
    Про объединение массивов можно почитать, например, тут: https://www.baeldung.com/java-concatenate-arrays
     
  4. Автор темы
    loredmaxed3

    loredmaxed3 Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    loredmaxed3
    Спасибо за помощь!
     
Статус темы:
Закрыта.

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