yurussNPC — жители сервера
Мод проекта · серверный · клиенту ставить нечего
yurussNPC добавляет NPC: с моделью игрока и настоящим скином любого аккаунта Minecraft либо из любой сущности реестра. Позы, анимации, реакция на подошедшего, сообщения, «пузыри» речи, диалоги с вариантами ответов и действия.
Содержание
Что умеет
- NPC с моделью игрока и настоящим скином любого ника Minecraft;
- NPC из любой сущности реестра —
minecraft:cow,minecraft:villagerи так далее; - позы, зацикленная анимация покоя и анимация на клик;
- слежение взглядом за игроком в радиусе;
- сообщения, всплывающие над головой, и диалоги с ветвлением;
- свечение с выбором цвета, настройка таблички над головой;
- хранение в JSON — NPC переживают перезапуск сервера.
Скин и имя — разные вещи
Две независимые настройки, и путать их — самая частая ошибка:
| Настройка | Что это |
|---|---|
/npc skin <id> <ник> | Чей скин надет на NPC. Это не его имя. |
/npc name <id> <текст> | Что написано над головой. Поддерживает цвета и переносы строк. |
Подпись Mojang передаётся клиенту без изменений, поэтому скин отображается корректно. Ванильное имя профиля над NPC прячется отдельно, чтобы ник-донор не всплывал у всех на виду.
Позы и анимации
Анимация — это таймлайн ключевых кадров из величин, которые ванильный клиент реально видит: поворот тела и головы, смещение, взмахи рукой, метаданные позы. У каждой есть длительность, зацикливание и сглаживание.
Протокол 1.20.1 не передаёт углы отдельных частей модели игрока — клиент считает их сам. Поэтому часть поз ванильный клиент не покажет, и мод честно помечает такие в панели, а не делает вид, что они работают.
Сообщения и диалоги
NPC умеет говорить при подходе в радиусе и при клике: сообщение висит над головой заданное время, у сообщений есть кулдаун, чтобы NPC не тараторил. Диалоги — с вариантами ответов и действиями по выбору.
Веб-панель
Мод поднимает панель на localhost — она настраивает NPC мышкой и генерирует готовые команды.
У нас панель переведена с порта по умолчанию 8080 на 8099: на 8080 работает
сам сайт сервера. Адрес — http://127.0.0.1:8099, только с той машины,
где запущен сервер. Пароль печатается в лог при каждом старте, если он не задан
в config/yurussnpc-common.toml.
Разделы панели:
- Dashboard — сколько NPC, активные, кешированные скины, игроки онлайн, разбивка по мирам;
- NPCs — таблица с фильтром и действиями (правка, дублирование, удаление);
- Create / Edit — вкладки Basic, Appearance, Behaviour, Messages, Actions, Dialogs: превью скина из настоящего PNG, превью имени с цветами, карточки поз и анимаций (клик проигрывает анимацию на живом NPC), редактор сообщений с перетаскиванием;
- Generated commands — готовые
/npcкоманды и кнопка «Copy all».
Команды генерирует сервер тем же кодом, который знает синтаксис Brigadier, и юнит-тест проверяет, что каждая строка начинается с существующей подкоманды. «Панель выдала команду, которой нет в моде» здесь невозможно.
Команды
Корень — /npc, всё с автодополнением. Ниже основное; полный список
показывает сама команда.
| Команда | Что делает |
|---|---|
/npc list [мир] | Список, кликабельный. |
/npc info <id> | Подробная карточка. |
/npc movehere <id> | Переставить к себе вместе с миром и поворотом. |
/npc teleport <id> | Телепортировать себя к NPC. |
/npc skin <id> <ник> | Источник скина. |
/npc name <id> <текст> | Имя над головой. |
/npc pose <id> <поза> | Поза. |
/npc glow <id> <цвет|none> | Свечение. |
/npc idle <id> <анимация> | Зацикленная анимация покоя. |
/npc lookat <id> <true|false> | Следить взглядом. |
/npc radius <id> <блоков> | Радиус срабатывания. |
/npc clone <id> <новый> | Дублировать. |
/npc web | Ссылка на панель. |
/npc reload | Перечитать конфиг и NPC без дублей. |
Связь с гильдией
yurussGuild объявляет необязательную зависимость от yurussNPC на серверной стороне. Теперь она удовлетворена: гильдейские выдачи заказов можно вешать на живого NPC, а не только на доску.