Мод для Майнкрафт на Forge, который добавляет внутриигровой чат в стиле Discord: со списком диалогов, историей сообщений и вариантами ответа. Он рассчитан прежде всего на авторов сборок: разговоры с персонажами, задания и развилки задаются датапаками и командами.
Возможности
- Диалоги показываются в отдельном окне с боковой панелью, пузырями сообщений, индикатором набора текста и всплывающими уведомлениями.
- История бесед общая для участников одной команды. Для команды можно хранить состояния, значения и очки — например прогресс заданий или валюту.
- Варианты ответа запускают команды, отправляют реплику игрока и переводят к следующему диалогу. Их можно скрывать по данным команды, очкам табло, уровню прав или условиям KubeJS.
- Кнопки ответа могут требовать предметы, показывать их и выдавать награду.
- Шаблоны подставляют имя игрока, данные команды, день, время, измерение, погоду и результаты KubeJS-обработчиков.
- Для собеседников можно добавить имя, подпись и PNG-аватар. История сохраняется в базе SQLite по пути
<world>/data/simchat/simchat.dbи не пропадает после перезапуска мира.
Как пользоваться
Диалоги размещаются в датапаке по пути data/<namespace>/simchat/<path>.json. В файле используются поля entityId, entityName, entitySubtitle, text и actions; для действий доступны label, commands, reply, nextState, condition, itemsVisual, itemsInput и itemsOutput.
Шаблоны в тексте и командах записываются, например, как {player:name}, {team:title}, {data:points}, {world:day} или {kjs:callbackName}. Условие data:is_vip показывает кнопку при наличии значения, а !data:is_vip — при его отсутствии. Конфиги персонажей и их аватары находятся в config/simchat/entities/; для общих значений можно использовать default.json и default.png.
Окно чата открывается клавишей ;.
Настройки
В simchat-client.toml настраиваются звук и громкость уведомлений, всплывающие сообщения, ширина и сортировка списка диалогов, цвета интерфейса, размер кэша и подгрузка старой переписки.
В simchat-common.toml задаются задержка и скорость имитации набора текста, уровни прав команд через permissions.*, правила автоматического вступления в команды и лимиты загрузки сообщений.
Для собственных условий и шаблонов KubeJS-обработчики регистрируются в kubejs/server_scripts/simchat.js через SimChat.registerCallback(...); затем их можно использовать как kjs:<имя>.
Требования и совместимость
На клиенте и сервере требуется библиотечный мод minecraft-sqlite-jdbc (sqlite_jdbc).
