- Загрузчики
- FabricQuilt
- Скачиваний на Modrinth
- 112
- Подписчиков на Modrinth
- 0
- версия
- 1
- Обновлён
- 13 марта 202613 мар.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
viaStyle
Серверный мод на Fabric для Minecraft 1.21.10. Заменяет ванильную систему чата на многоканальную, добавляет оформление списка игроков (tab), индивидуальные цвета ников, личные сообщения, упоминания, social spy и опциональные интеграции с LuckPerms, BlockBot, Carpet, PAPI и BanHammer. Клиентский мод не требуется.
Требования
- Minecraft 1.21.10
- Fabric Loader >= 0.16.12
- Fabric API Опциональные зависимости (определяются автоматически при запуске):
- LuckPerms — отображение префикса/суффикса, сортировка в tab по весу, проверки прав
- PlaceholderAPI (PAPI) — использование токенов
%placeholder%в строках формата - BlockBot — мост в Discord
- fabric-carpet — интеграция с событиями Scarpet и определение HUD-логгера
- melius-vanish (DrexHD) — скрытые игроки не показываются в подсказках и списке игроков
Установка
- Поместите `viastyle-+mc1.21.10.jar
в папкуmods/` сервера. - Запустите сервер. Конфиг по умолчанию создастся в
config/viaStyle/viaStyle.toml. - Отредактируйте конфиг по необходимости, затем выполните
/via reloadв игре или перезапустите сервер.
Конфигурация
Все настройки находятся в config/viaStyle/viaStyle.toml. Файл в читаемом формате TOML. Отсутствующие ключи заполняются значениями по умолчанию при следующей загрузке. Все настройки также можно менять на лету через панель /via admin.
[local]
| ключ | по умолчанию | описание |
|---|---|---|
| radius | 100.0 | Радиус видимости в блоках |
| trigger | (пусто) | Символ-префикс для входа в локальный режим — пусто означает, что локальный канал используется по умолчанию |
| prefix | [L] | Тег, добавляемый к сообщениям |
| prefix_color | GREEN | Цвет тега-префикса |
| name_color | GRAY | Цвет имени игрока |
| message_color | GRAY | Цвет текста сообщения |
| format | {timestamp}{prefix} {lp_prefix}{name}: {message} | Полный шаблон сообщения |
| noone_heard | false | Уведомлять отправителя, если рядом никого нет |
| noone_heard_message | Nobody heard you. | Текст, показываемый отправителю в этом случае |
[global]
| ключ | по умолчанию | описание |
|---|---|---|
| trigger | ! | Символ-префикс для отправки сообщения в глобальный чат |
| prefix | [G] | Тег, добавляемый к сообщениям |
| prefix_color | YELLOW | Цвет тега-префикса |
| name_color | WHITE | Цвет имени игрока |
| message_color | WHITE | Цвет текста сообщения |
| format | {timestamp}{prefix} {lp_prefix}{name}: {message} | Полный шаблон сообщения |
[staff]
| ключ | по умолчанию | описание |
|---|---|---|
| trigger | \ | Символ-префикс для чата персонала — пусто для отключения |
| prefix | [Staff] | Тег, добавляемый к сообщениям |
| prefix_color | RED | Цвет тега-префикса |
| name_color | WHITE | Цвет имени игрока |
| message_color | DARK_RED | Цвет текста сообщения |
| format | {timestamp}{prefix} {lp_prefix}{name}: {message} | Полный шаблон сообщения |
[timestamp]
| ключ | по умолчанию | описание |
|---|---|---|
| show_timestamp | false | Добавлять метку времени к каждому сообщению |
| timestamp_format | HH:mm | Шаблон Java DateTimeFormatter |
| timestamp_color | DARK_GRAY | Цвет метки времени |
[integrations]
| ключ | по умолчанию | описание |
|---|---|---|
| use_placeholder_api | true | Включить поддержку PlaceholderAPI |
| use_ban_hammer | true | Включить интеграцию с BanHammer |
| use_luck_perms | true | Включить интеграцию с LuckPerms |
| use_scarpet_events | false | Вызывать события Scarpet PLAYER_MESSAGE на каждое сообщение в чате |
[blockbot]
| ключ | по умолчанию | описание |
|---|---|---|
| bridge_mode | auto | auto включает мост при загруженном BlockBot, none отключает его |
| global_channel | chat | Название канала BlockBot для ретрансляции глобального чата |
| local_channel | (пусто) | Канал BlockBot для локального чата — пусто для отключения |
| discord_format | [Discord] {message} | Формат, применяемый когда passthrough равен false |
| passthrough | true | true — BlockBot сам форматирует сообщения из Discord в MC; false — viaStyle применяет discord_format |
| discord_mention_ping | true | Сканировать широковещательные сообщения и вызывать пинг в игре при упоминании имени игрока |
| discord_mention_mappings | (пусто) | Ручные пары MinecraftName:DiscordUserId, через запятую |
[pm]
| ключ | по умолчанию | описание |
|---|---|---|
| allow_self_message | false | Разрешить игрокам писать /msg самим себе |
| sender_format | [PM -> {receiver}] {message} | Формат, показываемый отправителю |
| receiver_format | [PM <- {sender}] {message} | Формат, показываемый получателю |
| color | LIGHT_PURPLE | Цвет сообщений ЛС |
[nickcolor]
| ключ | по умолчанию | описание |
|---|---|---|
| enabled | true | Главный переключатель системы цветов ников |
| in_chat | true | Применять цвет ника к сообщениям в чате |
| in_tab | true | Применять цвет ника в списке игроков |
| in_nametag | true | Применять цвет ника к нику над головой |
| nametag_show_lp_prefix | true | Включать префикс LuckPerms в ник над головой |
| nametag_mode | display | display — сущность TextDisplay (полный RGB); team — 16 ванильных цветов |
| nametag_color_strategy | first | Как выбирать цвет из градиентов: first или average |
| nametag_orphan_scan_enabled | true | Периодически удалять оставшиеся сущности TextDisplay |
| nametag_orphan_scan_interval_ticks | 200 | Интервал сканирования в тиках |
[tablist]
| ключ | по умолчанию | описание |
|---|---|---|
| sort_mode | normal | normal — больший вес LP идёт ниже; reverse — больший идёт выше; none — отключено |
| sort_spectators_to_bottom | false | Отправлять наблюдателей ниже всех остальных игроков |
[mentions]
| ключ | по умолчанию | описание |
|---|---|---|
| enabled | true | Обрабатывать упоминания @PlayerName в чате |
| sound | true | Проигрывать звук на клиенте упомянутого игрока |
| bold | false | Выделять @упоминание жирным в сообщении |
| color | GOLD | Цвет подсветки упоминаний |
[language]
| ключ | по умолчанию | описание |
|---|---|---|
| default_language | en | Язык интерфейса — en или ru |
[joinleave]
| ключ | по умолчанию | описание |
|---|---|---|
| join_format | &a+ &r{name} | Формат широковещательного сообщения при входе игрока |
| leave_format | &c- &r{name} | Формат сообщения при выходе игрока | | first_join_format | &6+ &r{name} &6joined for the first time! | Показывается только при первом входе |
[console]
| key | default | description |
|---|---|---|
| log_global_to_console | true | Пересылать глобальный чат в консоль сервера |
| log_local_to_console | true | Пересылать локальный чат |
| log_staff_to_console | true | Пересылать чат персонала |
| log_privates_to_console | true | Пересылать личные сообщения |
Токены форматирования
Большинство строк форматирования поддерживают следующие токены:
| token | value |
|---|---|
{name} | Отображаемое имя игрока |
{message} | Содержимое сообщения |
{prefix} | Тег префикса канала |
{timestamp} | Метка времени (пусто, если отключена) |
{lp_prefix} | Префикс LuckPerms |
{lp_suffix} | Суффикс LuckPerms |
Устаревшие цветовые коды & и hex-цвета (&#RRGGBB) поддерживаются во всех строках форматирования. Теги в стиле MiniMessage (`, , <gr:#ff0000:#ffaa00>`) поддерживаются в значениях цвета ника и в строках форматирования viaSuper.
Возможности
Каналы чата
Локальный чат виден только в пределах настроенного радиуса. Глобальный чат доходит до каждого игрока. Чат персонала доступен только игрокам с правом viastyle.staff. Активный канал по умолчанию можно переключать для каждого игрока командой /chatmode. Если включён noone_heard, отправитель получает личное уведомление, когда рядом никого не было.
Личные сообщения
`/msg (алиасы/m, /w) отправляет личное сообщение. /reply(алиас/r`) отвечает последнему, кто вам написал. Игнорируемые игроки не могут отправлять ЛС. Исчезнувшие игроки исключаются из подсказок.
@Упоминания
Введите @PlayerName в любом сообщении, чтобы выделить его и проиграть звук на клиенте получателя. Используется частичное совпадение — @via совпадает с viaMeowts. Если установлен BlockBot, ввод @MinecraftName в игре может преобразоваться в ID пользователя Discord, чтобы Discord отображал это как настоящий пинг. Соответствие можно настроить вручную в discord_mention_mappings или заполнить автоматически из входящих сообщений Discord.
Система игнорирования
`/ignore ` переключает игнорирование. Сообщения и ЛС игнорируемого игрока молча отбрасываются. Состояние сохраняется между перезапусками.
Social Spy
/socialspy (требует viastyle.socialspy) перехватывает личные сообщения на всём сервере. Персонал может следить за локальным чатом и чатом персонала с любого расстояния.
Цвета ников
Игроки задают цвет через `/nickcolor . Принимаются именованные цвета, hex-коды (#rrggbb) и синтаксис градиента (#ff0000:#ffaa00). Хранится в config/viaStyle/nickcolors.json.
Цвет применяется к чату, списку игроков и плавающему нику TextDisplay. Администраторы могут задать или сбросить цвет любого игрока через /nickcolor <colour|reset>.
nametag_mode = displayотображает ники как сущности TextDisplay (полный RGB).nametag_mode = team` использует команды скорборда (16 ванильных цветов, лучшая совместимость).
Список игроков
viaStyle отправляет каждому игроку свой заголовок и подвал каждый тик. Шаблоны лежат в config/viaStyle/tablist.json. Игроки с активными логгерами Carpet HUD (/log tps, /log mobcaps и т. д.) автоматически исключаются из обновлений. Порядок сортировки в списке управляется sort_mode и использует вес LuckPerms, если он доступен.
Сообщения о входе / выходе
Ванильные сообщения о входе и выходе заменяются настроенными форматами. Отдельный формат транслируется при самом первом входе игрока.
viaSuper
/viasuper [text] отправляет эффектное объявление в виде заголовка/подзаголовка. Короткие слова отображаются как крупный заголовок; более длинные слова (длина >= viaSuperSubtitleLength) отображаются как подзаголовок. Форматирование MiniMessage и градиенты поддерживаются в viaSuperTitleFormat и viaSuperSubtitleFormat.
Мост в Discord (BlockBot)
Если установлен BlockBot, viaStyle передаёт чат Minecraft в Discord через ChatMessageEvent с sendRelayMessage в качестве запасного варианта. Оба пакета API BlockBot — современный и устаревший — определяются автоматически через рефлексию. Установите passthrough = true (по умолчанию), чтобы BlockBot сам обрабатывал форматирование из Discord в Minecraft. Установите passthrough = false, чтобы использовать discord_format из viaStyle.
BanHammer
Когда загружен BanHammer, игроки, пытающиеся писать в чат во время бана, получают стандартное сообщение BanHammer.
Интеграция с Carpet / Scarpet
Установите useScarpetEvents = true, чтобы viaStyle вызывал событие PLAYER_MESSAGE из Carpet для каждого обрабатываемого сообщения. Скрипты Scarpet могут перехватывать, изменять или отменять сообщения. Определение логгеров Carpet HUD работает независимо от этой настройки.
Команды
| command | permission | description |
|---|---|---|
/via reload | viastyle.admin | Перезагрузить конфиг с диска |
/via admin | viastyle.admin | Открыть игровую админ-панель |
| `/msg ` | any | Отправить личное сообщение |
| `/reply ` | any | Ответить последнему отправителю ЛС |
/chatmode | any | Переключить канал по умолчанию (локальный / глобальный) |
| `/ignore ` | any | Переключить игнорирование игрока |
/nickcolor [player] <colour|reset> | viastyle.nickcolor / viastyle.admin | Задать или сбросить цвет ника |
/socialspy | viastyle.socialspy | Переключить social spy |
/viasuper [text] | viastyle.admin | Транслировать сообщение-заголовок/подзаголовок |
Права
| node | description |
|---|---|
viastyle.admin | Полный админ-доступ: перезагрузка конфига, админ-панель, viasuper, установка цветов ников других игроков |
viastyle.staff | Писать и читать чат персонала |
viastyle.socialspy | Переключать social spy |
viastyle.nickcolor | Задать свой цвет ника |
Скрипты Scarpet
Включите use_scarpet_events = true в конфиге. viaStyle вызывает событие PLAYER_MESSAGE из Carpet для каждого сообщения. Скрипт может вернуть 'cancel', чтобы подавить сообщение, или вернуть изменённую строку, чтобы заменить содержимое. tools/scarpet_generator.py генерирует следующие шаблоны:
| script | description |
|---|---|
viastyle_logger.sc | Логировать сообщения в файл с метками времени |
viastyle_antispam.sc | Ограничитель частоты для каждого игрока |
viastyle_filter.sc | Блокировка / цензура слов |
| viastyle_discord.sc | Ретрансляция очереди файлов для внешних Discord-ботов | | viastyle_welcome.sc | MOTD при входе | | viastyle_commands.sc | Команды в чате с префиксом # (#help, #roll, #tps) | | viastyle_stats.sc | Счётчик сообщений и слов для каждого игрока |
python tools/scarpet_generator.py --all --out /path/to/scriptsСкопируйте сгенерированные файлы .sc в `/scripts/и загрузите через/script load `.
Лицензия
MIT. См. LICENSE.
Частые вопросы
Как установить viaStyle?
Установите Fabric под свою версию Minecraft, скачайте viaStyle под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть viaStyle?
У viaStyle есть сборки для Minecraft 1.21.10.
Нужен ли viaStyle на сервере?
Ставится только на сервер; игрокам ставить не нужно