MC Toolkit

Руководства / Команды и данные

Один и тот же красный текст ломается на Java и Bedrock

Цветовой код, который идеально отображается в одном плагине, в следующем оказывается буквальными амперсандами. Причина — формат, а не плагин.

Код § и тег MiniMessage могут описывать один и тот же цвет — и всё равно быть отвергнутыми одним и тем же сервером. Цветной текст на сервере — это не один формат, а как минимум пять, и плагины расходятся во мнениях о том, какие из них они принимают.

Пять диалектов

ДиалектКак выглядитГде выживает
Legacy section§cHelloВанильный чат, старые плагины
Ampersand legacy&cHelloФайлы конфигурации, многие плагины
BungeeCord hex&x&f&f&0&0&0&0Плагины прокси, некоторый чат
MiniMessage<red>Hello</red>Современные плагины Paper
JSON component{"text":"Hello","color":"red"}Ванильные команды, /tellraw

Форма с амперсандом вообще не является цветовым кодом, пока что-нибудь его не преобразует. Вставьте &c в плагин, который ожидает MiniMessage, — и игроки прочитают буквальные символы.

В legacy-кодах заканчиваются цвета

Система со знаком параграфа несёт фиксированный набор букв цвета плюс переключатели форматирования. Выразить в ней произвольный цвет невозможно. Hex появился позже, и форма BungeeCord кодирует его по одному символу за раз — &x, за которым следуют шесть hex-цифр с префиксом &, — вот почему она выглядит такой длинной.

MiniMessage принимает #ff0000 напрямую. JSON принимает тот же hex как строковое значение.

Java и Bedrock не сходятся

Bedrock тоже использует знак параграфа, но его набор цветов и обработка сброса форматирования отличаются от Java. Строка, которая корректно отображается на сервере Java, может показывать лишние символы на клиентах Bedrock, а прокси для кросс-плея часто переводят между этими двумя форматами, а не передают текст как есть. Если ваш сервер принимает игроков Bedrock, проверяйте вывод на обеих платформах.

Ловушка вложенности

Legacy-коды хранят состояние: цветовой код сбрасывает форматирование, поэтому §l§cBold — это красный и жирный, но §c§lBold остаётся жирным красным только до следующего цветового кода, который снимает жирность. MiniMessage — это дерево: <red><bold>text</bold></red> закрывается чисто. Преобразование вложенной строки MiniMessage в legacy-коды теряет структуру, потому что в legacy нет закрывающего тега.

Экранирование

MiniMessage воспринимает < как синтаксис. Игрок с ником <Steve> ломает любой плагин, который разбирает его имя как компонент. У legacy-форматов та же проблема с &, поэтому многие плагины требуют && или флаг в конфигурации для его экранирования.

Напишите текст один раз, выберите диалект, который ваш плагин действительно разбирает, и скопируйте точную строку из Server Text Studio.

Server Text Studio →

Другие руководства

Смотреть все →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.