Custom Server Messages
Мод для Minecraft, позволяющий настроить любое сообщение сервера, с поддержкой форматирования текста и плейсхолдеров.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 2 тыс.
- Подписчиков на Modrinth
- 15
- версий
- 12
- Обновлён
- 27 июня 202627 июн.
- Опубликован
- в 2024
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Server Messages
Мод для Minecraft, позволяющий настроить любое сообщение сервера, с поддержкой форматирования текста и плейсхолдеров.
Что он делает?
Этот мод позволяет изменить любое[1] сообщение сервера на свой вкус. Можно заменить само сообщение, добавить или изменить форматирование, и даже использовать плейсхолдеры. Формат полностью совместим с форматом переведённого текста, используемым в языковых файлах.
Чаще всего мод используют, чтобы поменять цвет сообщений вроде «You have been banned», добавить информацию в сообщение «You're not whitelisted» или настроить уведомление о кике. А ещё с его помощью можно показывать какую-нибудь статистику, когда игрок заходит на сервер или выходит с него, или сделать сообщения о смерти радужными. Возможности безграничны!
Для всего, что связано с чатом, я рекомендую использовать Styled Chat. Если вы так сделаете, все связанные сообщения в этом моде будут отключены во избежание конфликтов. После этого их можно менять через Styled Chat.
Как этим пользоваться?
Чтобы изменить сообщение, просто добавьте соответствующий ключ перевода в конфиг и поменяйте его значение на своё. Формат текста основан на формате переведённого текста и также поддерживает QuickText Format для форматирования текста и глобальные плейсхолдеры. Перезагрузить конфиг можно командой /reload.
Формат плейсхолдеров — ${placeholder}, и для большинства сообщений можно использовать только те плейсхолдеры, которые НЕ зависят от игрока/сущности! Так, ${server:tps} и ${world:name} (overworld) вполне подойдут, а вот ${player:name} будет работать не всегда.
Подробнее см. Контексты плейсхолдеров.
Формат конфига совместим с форматом языковых файлов Minecraft. Так что можно просто заменить конфиг языковым файлом (категорически не рекомендую) и всё будет работать. Учтите, однако, что это НЕ перезапишет языковые настройки игроков! Для справки список всех доступных сейчас языковых файлов можно найти здесь.
Если вы используете ключи перевода вручную (QuickText / STF или Text components), например в сообщениях чата или других модах, они тоже будут затронуты этим модом и станут использовать то же форматирование, что указано в конфиге. Если вам это не нужно, можно либо добавить r или raw к QuickText / STF тегам перевода (`->), либо добавить #raw**последним** аргументом к аргументам перевода.
*Например,— то же самое, что, и предотвратит изменение сообщения.
Для [Text components](https://minecraft.wiki/w/Text_component_format#Translated_Text) это будет выглядеть так:
{"translate": "...", "with": [..., "#raw"]}`.*
Любой другой мод, изменяющий сообщения сервера (например, BanHammer), почти наверняка будет иметь приоритет над изменениями этого мода.
Пример конфига
{
// только изменить форматирование
"multiplayer.disconnect.not_whitelisted": "<red><bold><lang multiplayer.disconnect.not_whitelisted></bold></red>",
// заменить сообщение; использовать плейсхолдер
"multiplayer.disconnect.server_shutdown": "<green>We'll be right back!</green>\n<gray><underline>Uptime: </>${server:uptime}</gray>",
// добавить текст; использовать вложенный аргумент перевода
"multiplayer.player.joined": "<yellow><lang multiplayer.player.joined '%s'>. Good to see you!</yellow>",
// заменить сообщение; использовать аргумент перевода
"multiplayer.player.left": "<yellow>See you soon, <bold>%s</bold>!</yellow>",
// свой ключ перевода; добавить причину в сообщение о кике
"multiplayer.disconnect.kicked.reason": "<lang multiplayer.disconnect.kicked>\n<yellow>%s</yellow>"
}
Не копируй это как есть! Конфиг использует формат JSON, а JSON НЕ поддерживает комментарии. Комментарии в примере только для пояснения. Не копируй комментарии!
Поддерживаемые ключи перевода
Теоретически поддерживается любой ключ перевода, если он используется явно (например, в теге перевода). Но изначально сервер использует лишь несколько переводов. Поддерживаются все ключи перевода, которые обрабатываются на сервере. Это включает большинство сообщений, которые ты видишь во время игры на сервере.
Более подробный список поддерживаемых ключей смотри здесь.
Информация в этом списке может быть неточной!
Хотя он может помочь получить быстрое представление, он основан только на моих находках и множестве предположений.
Контексты плейсхолдеров
Контексты — это дополнительная информация, позволяющая работать разным плейсхолдерам. Например, некоторые моды вроде AfkPlus требуют контекст player, чтобы их плейсхолдеры работали. Он может быть доступен не в каждом сообщении, поэтому проверяй дополнительные контексты нужного тебе сообщения в списке ниже.
Все сообщения поддерживают базовые контексты, то есть Server и Overworld, но НЕ Player.
| Ключ(и) перевода | Контекст | Версия добавления |
|---|---|---|
chat.type.advancement.* | player | 1.0 |
commands.ban.success | player | 1.1 |
commands.banip.success | player | 1.1 |
commands.deop.success | player | 1.1 |
commands.kick.success | player | 1.0 |
commands.op.success | player | 1.1 |
commands.pardon.success | player | 1.1 |
| death.* | player | 1.0 | | multiplayer.disconnect.* | player, если игрок уже был на сервере до отключения, иначе profile.
Исключения (список неполный).transfers_disabled, .outdated_client, .incompatible
У них только контекст по умолчанию (server). | 1.1 (некоторые 1.0) | | multiplayer.player.joined | player | 1.0 | | multiplayer.player.joined.renamed | player | 1.0 | | multiplayer.player.left | player | 1.0 |
Если вы хотите добавить определённый контекст, пожалуйста, откройте issue или напишите мне в Discord.
Дополнительные ключи перевода
Этот мод также добавляет несколько дополнительных ключей перевода для использования в конфиге. Они позволят вам настроить некоторые сообщения, которые обычно изменить нельзя.
Эти ключи перевода не предоставляются самим Minecraft и работают только при указании в конфиге мода.
| Ключ перевода | Контекст | Примечания | По умолчанию | Версия добавления |
|---|---|---|---|---|
multiplayer.disconnect.kicked.reason | player | Отправляется кикнутому игроку (игрокам), если была указана причина. Причина — единственный аргумент ( %s).См. multiplayer.disconnect.banned.reason. | %s | 1.1 |
Зачем мне это?
Почти каждое текстовое сообщение, которое ванильный сервер отправляет игрокам, использует ключ перевода для отображения соответствующего сообщения. Так что вместо отправки настоящего текста (например, ` joined the game) он отправляет что-то
вроде translate[multiplayer.player.joined]`. Затем клиент преобразует это в настоящий текст, используя выбранный игроком язык. Так игра гарантирует, что каждый игрок увидит сообщение на предпочитаемом языке. Хотя это весьма полезно, иногда такое поведение может быть не тем, что вам нужно, потому что вы не можете изменить форматирование этих сообщений, не заставляя своих игроков использовать кастомный ресурспак. Именно для этого и существует этот мод.
Обычно эти сообщения отображаются простым белым текстом, что довольно скучно. Чтобы разнообразить это, нужно иметь возможность менять эти сообщения на всём сервере. Например, можно изменить сообщение «not on whitelist», чтобы дать новым игрокам больше информации. Также можно изменить цвет сообщения «you have been banned», чтобы оно выделялось. Таких серверных сообщений, которые вы, возможно, захотите настроить, очень много, так что попробуйте!
Как это работает?
Этот мод заменяет ключ перевода на текст, указанный вами в конфиге, до того, как текст отправляется игроку. Так игрок получает ваше кастомное сообщение вместо стандартного. Это не обязательно влияет на перевод сообщений. Так что вы можете добавить форматирование к сообщениям, не теряя функцию авто-перевода (см. пример конфига).
Чтобы предотвратить бесконечную рекурсию, все ключи перевода, используемые в ваших кастомных сообщениях, будут иметь значения по умолчанию и форматирование, а не значения, которые вы указали.
[ 1 ]: *Есть некоторые особые случаи, когда это может не работать как ожидается из-за того, как Minecraft обрабатывает определённые сообщения. Если вы столкнётесь с одним из них, пожалуйста, откройте issue, и я посмотрю, что можно сделать, чтобы они тоже работали.
Сообщения чата игроков (а также /me и т.д.), к сожалению, не поддерживаются этим модом. Используйте Styled Chat для них.*
Частые вопросы
Как установить Custom Server Messages?
Установите Fabric под свою версию Minecraft, скачайте Custom Server Messages под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Custom Server Messages?
У Custom Server Messages есть сборки для Minecraft 1.21–26.3.
Нужен ли Custom Server Messages на сервере?
Ставится только на сервер; игрокам ставить не нужно