Разбор JSON формата сообщений
JSON форматированные сообщения можно выводить с помощью title, tellraw или использовать в названии чего-либо (счёт, сущность, команда игроков, предмет, его описание).
Тег text: В этом теге нужно указать текст для вывода на экран (Через tellraw например) {"text":"Привет"}
Тег color: Указывает цвет текста. (Аналогично тому, если бы перед текстом из тега text поставили § и код цвета) {"text":"Привет","color":"gold"} | Принимает одно из значений таблицы
Таблица цветов
Тег bold: Делает текст жирным (Аналогично §l перед текстом) {"text":"Привет","color":"gold","bold":true} | Принимает только true/false
Тег italic: Делает текст наклонным (Аналогично §o перед текстом) {"text":"Привет","italic":true} | Принимает только true/false
Тег strikethrough: Делает текст зачёркнутым (Аналогично §m перед текстом) {"text":"Привет","strikethrough":true} | Принимает только true/false
Тег underlined: Делает текст подчёркнутым (Аналогично §n перед текстом) {"text":"Привет","underlined":true} | Принимает только true/false
Тег obfuscated: Делает текст обфусцированным (Аналогично §k перед текстом) {"text":"Привет","obfuscated":true} | Принимает только true/false
Также чтобы задать JSON строку можно использовать массив из элементов:
[{"text":"Привет","color":"gold"},{"text":" мир","color":"green"}]
Если указать свойства первому элементу, но не указывать свойства для следующего, все объекты унаследуют свойства предыдущего.
[{"text":"Этот текст жирный. ","color":"gold","bold":true},{"text":"Как и этот, хотя тут нет свойства \"bold\"","color":"green"},{"text":"А это обычный текст. ","color":"gold","bold":false}]
Кстати, чтобы в текст вставить символ " нужно перед ним поставить \ (backslash). Символ, который находится за \ считается как текст, а не разделитель между свойствами.
Ещё есть \n - символ перехода на новую строку. Также \t - табуляция
Ну а теперь к интересному и более сложному.
В: Как в сообщении указать имя игрока?
О: Тег selector: Подставляет имя (Или несколько имён) в текст. Принимает как аргумент обычный селектор. Например:
/tellraw @s [{"text":"Твой ник: "},{"selector":"@s"}]
Или вот ещё пример, в котором будет выведен список игроков, в креативе:
/tellraw @s [{"text":"Игроки в креативе: "},{"selector":"@a[gamemode=creative]"}]
Если сущность из селектора не будет найдена (Хотя бы одна), этот тег будет проигнорирован (Он не появится в сообщении)
В: Как вывести значение счёта (scoreboard) в сообщение? (В tellraw или title например)
О: Тег score: Подставляет значение из счёта сущности в текст. Принимает "словарь" как аргумент. {"name":"@s","objective":"test","value":"Текст перед значением"}
Красным выделил обязательные аргументы. name: Селектор сущности, счёт которой нужно взять. objective: название задачи (счёта scoreboard), из которого нужно брать значение. value: текст, который будет написан перед счётом.
Тут не всё, но основное написал, если кто-то хочет дополнить, пишите в эту тему. Скорее всего дополню, когда будет время.