Перейти к основному содержимому

TinyEssentials

29 основных команд, дома, TPA, формат чата, таблист, календарь, быстрое перемещение и вики.

Приватныеv0.0.2Утилиты
ТребуетсяTypeWriter0.9.0-beta-177 (BTC build)PacketEventsMySQLGUITranslateнеобязательно

Создано для сети BornToCraft. Это расширение описано для справки и не распространяется.

Обзор​

TinyEssentials — это «базовый» слой сервера BTC, вдохновлённый EssentialsX и построенный на TypeWriter. Он приносит 29 команд для игроков и персонала (дома, запросы телепортации, сообщения, полёт, ванш, лечение...), форматировщик чата, предметы при входе, штраф за смерть («падальщик», scavenger), менеджер списка игроков (tablist), скорборда и боссбаров, пользовательскую длину суток с календарём, меню быстрого перемещения и внутриигровую вики.

Всё настраивается в веб-панели. Каждая команда — отдельная запись, поэтому вы выбираете её имя и право и добавляете только нужные команды. Сообщения собраны в одной записи конфигурации Tiny Essentials, а более крупные функции (дома, чат, tab, календарь) имеют свои записи.

Меню (дома, календарь, быстрое перемещение, вики) отрисовываются расширением GUI и макетом, который вы рисуете на странице.

Возможности​

  • 29 записей команд — fly, god, feed, heal, vanish, speed, gamemode, repair, back, TPA, сообщения, дома и другие, у каждой настраиваемые имя и право.
  • Дома — дома для каждого игрока с лимитами по правам, перезарядками, постраничным меню с редактором (переименование, значок, удаление) и сохранённым хранилищем.
  • Запросы телепортации — /tpa и /tpahere с тайм-аутом, переключателем и историей /back.
  • Личные сообщения — /msg, /reply и /msgtoggle с нейтрализованными цветовыми кодами.
  • Формат чата — форматы MiniMessage, выбираемые по праву и приоритету, общие для серверов через Redis, когда MySQL работает в общем режиме.
  • Tablist, скорборд, боссбар — верхний и нижний колонтитулы, форматирование имён, сортировка, раскладка на 80 слотов, условия и анимации.
  • Предметы при входе — предметы, выдаваемые при входе или возрождении, с командами по клику и флагами защиты.
  • Падальщик (scavenger) — процентная потеря предметов и опыта при смерти, защищённые предметы и штрафы на основе плейсхолдеров.
  • Пользовательское время и календарь — длина суток, календарь с месяцами, днями недели и событиями, меню календаря, факты, фильтр аудитории и плейсхолдеры.
  • Быстрое перемещение и вики — меню перемещения по регионам с criteria блокировки и внутриигровое руководство из разделов и статей.

Установка​

  1. Установите PacketEvents, нужный функциям tablist.
  2. Установите расширение MySQL, которое TinyEssentials объявляет зависимостью (Redis используется для межсерверного чата и списка tab), и расширение GUI для меню.
  3. По желанию установите Translate, чтобы переводить сетевой чат для игроков на других серверах.
  4. Положите JAR-файл TinyEssentials в plugins/Typewriter/extensions/ и перезапустите сервер.
  5. Выдайте права на команды (см. таблицу прав) через ваш плагин прав. Функции tab на основе групп читают права с названиями group.<name>.

Быстрый старт​

  1. В веб-панели TypeWriter откройте страницу static и добавьте одну запись Tiny Essentials. Без неё каждая команда отвечает, что TinyEssentials не настроен. Настройте defaultTeleportCooldown, tpaTimeoutSeconds, backBufferSize и сообщения.
  2. Добавьте нужные записи команд, например /fly, /tpa и /back. Оставьте или измените commandName и permission.
  3. Для домов добавьте Artifact Home и Home Manager, ссылающийся на него в artifact, затем добавьте /home и остальные команды домов.
  4. Для формата чата добавьте Chat Format с groups, например owner (право group.owner, priority 10, format <gold>[Owner] <player><white>: <message>) и fallbackFormat.
  5. Опубликуйте, выдайте права и проверьте с игроком.
Сообщения используют устаревшие цветовые коды

Сообщения в Tiny Essentials и Home Manager используют цветовые коды & и токены вида {player}. Форматы чата, tablist и меню используют MiniMessage.

Как это работает​

Каждая запись функции читается, когда она нужна. Используйте по одной записи каждого вида (один Tiny Essentials, один Home Manager, один Chat Format, один Join Item, один Scavenger): расширение берёт первую найденную.

Конфигурация​

Помимо записей, TinyEssentials опирается на следующие правила времени выполнения.

  • Перезарядка телепортации — /back и /tpa ждут defaultTeleportCooldown секунд или наибольший cooldownSeconds среди cooldownRules, право которых есть у игрока. Если не включён allowMovement, движение отменяет телепортацию. Телепортации жемчугом Края или приземлением после плода хоруса в историю /back не попадают.
  • Ванш и переключатели — состояния vanish, /msgtoggle и /tpatoggle хранятся на игроке, поэтому переживают перезапуски и переподключения.
  • Сетевые функции — чат и список tab используют Redis, когда расширение MySQL работает с общей областью; иначе они остаются локальными.
  • Устаревшие поля в Tiny Essentials — поля с названиями ...Command (msgCommand, flyCommand...) и basePermission не применяются: названия команд и права находятся в записях команд. Эти поля с названиями появляются только в сообщениях об использовании. Поля tab bossbarToggleCommand и scoreboardToggleCommand тоже не регистрируются как команды.

Меню​

TinyEssentials добавляет типы кнопок для страниц, построенных с помощью расширения GUI.

МенюЗаписьТипы кнопок
ДомаHome Manager (меню настраиваются в самой записи)Нет: макет задаётся в homesMenu и homeEditorMenu.
КалендарьCalendar Menucalendar_button:DAY, WEEKDAY, EVENT, CALENDAR_SUMMARY, MONTH_NAV
Быстрое перемещениеFast Travel Menutravel_button:REGION_TAB, DESTINATION, REGION_SUMMARY
ВикиWiki Menuwiki_button:SECTION_TAB, ARTICLE, PAGE_NAV

Меню календаря, быстрого перемещения и вики используют один подход: общее шасси open_gui (baseMenuId), пул макетов и представления. Индексированные кнопки вроде DAY или DESTINATION заполняются по порядку из данных (сетка — верхний предел отображения, лишние слоты остаются пустыми).

Меню домов постраничное, с кнопками «назад», «вперёд» и закрытия, предметом-заполнителем, предметом для пустых слотов домов и редактором, открываемым кликом по дому: телепортация, переименование в чате (введите cancel для отмены), установка значка из предмета в руке, сброс значка и удаление.

Команды​

Все команды — это команды brigadier, регистрируемые записями, поэтому у клиентов есть автодополнение. У команд нет псевдонимов. Без нужного права команда скрыта. Команды, нацеленные на игрока, принимают селектор игроков; действие над другим игроком требует соответствующего права .others, которое проверяется при выполнении команды.

Команды для себя и персонала

КомандаОписаниеПраво
/fly [player]Переключает полёт.tinyessentials.fly (для других: tinyessentials.fly.others)
/god [player]Переключает неуязвимость.tinyessentials.god (для других: .god.others)
/feed [player]Восстанавливает сытость и насыщение.tinyessentials.feed (для других: .feed.others)
/heal [player]Восстанавливает здоровье, сытость, воздух и снимает огонь и замерзание.tinyessentials.heal (для других: .heal.others)
/vanish [player]Переключает невидимость для других игроков; сохраняется после переподключения.tinyessentials.vanish (для других: .vanish.others)
/gamemode <survival|creative|adventure|spectator> [player]Меняет режим игры.tinyessentials.gamemode (для других: .gamemode.others)
/speed <value> [walk|fly|sneak] [player] и /speed reset [walk|fly|sneak]Задаёт скорость от -20 до 20. Работает только в творческом режиме. Без типа летящие игроки получают скорость полёта, остальные — скорость ходьбы. Изменение скорости другого игрока требует .speed.others.tinyessentials.speed (для других: .speed.others)
/suicideУбивает вас.tinyessentials.suicide
/repairЧинит инструмент, оружие или броню в руке (не блоки, не неразрушаемые предметы).tinyessentials.repair
/invsee <player>Открывает инвентарь другого игрока. Для его редактирования нужно tinyessentials.inventory.edit.tinyessentials.inventory (цель: .inventory.others)
/pocketmenu <type> [--consume]Открывает ванильное меню: workbench, enchanting, anvil, smithing, grindstone, cartography, stonecutter, loom или brewing. --consume заставляет стол зачарований расходовать уровни.tinyessentials.pocketmenu

Команды телепортации

КомандаОписаниеПраво
/backВозвращает на предыдущее место с перезарядкой.tinyessentials.back
/tpa <player>Просит телепортироваться к игроку.tinyessentials.tpa
/tpahere <player>Просит игрока телепортироваться к вам.tinyessentials.tpahere
/tpaccept [player]Принимает последний запрос или запрос от названного игрока.tinyessentials.tpaccept
/tpadeny [player]Отклоняет последний запрос или запрос от названного игрока.tinyessentials.tpadeny
/tpatoggleОстанавливает или возобновляет получение запросов.tinyessentials.tpatoggle
/tppos <x> <y> [z]Телепортирует по координатам.tinyessentials.tppos
/tpallТелепортирует к вам всех игроков в сети.tinyessentials.tpall
/getposПоказывает вашу позицию, поворот и мир.tinyessentials.getpos

Сообщения

КомандаОписаниеПраво
/msg <player> <message>Отправляет личное сообщение.tinyessentials.msg
/reply <message>Отвечает в последней переписке.tinyessentials.reply
/msgtoggleОстанавливает или возобновляет получение личных сообщений.tinyessentials.msgtoggle

Дома — они также требуют basePermission Home Manager, если вы его задали.

КомандаОписаниеПраво
/home [name]Телепортирует к дому; без имени — к дому с названием home.tinyessentials.homes.teleport
/home list (или ls)Открывает меню домов.tinyessentials.homes.list
/home set|add|create|save [name]Сохраняет дом в вашей позиции.tinyessentials.homes.set
/home delete|del|remove|rm [name]Удаляет дом.tinyessentials.homes.delete
/sethome [name]Сохраняет дом.tinyessentials.homes.set
/delhome [name]Удаляет дом.tinyessentials.homes.delete
/homesОткрывает меню домов.tinyessentials.homes.list

Календарь

КомандаОписаниеПраво
/calendarОткрывает календарь на текущем месяце. /calendar month <prev|next|current> <player> используется кнопками меню.tinyessentials.calendar (оставьте пустым, чтобы права не требовалось)
/timefactВыводит строки связанной записи Time Fact.tinyessentials.timefact (оставьте пустым, чтобы права не требовалось)

Поле permission каждой записи команды по умолчанию равно праву из таблиц выше. Название команды меняется через commandName.

Права​

ПравоДаёт доступ к
tinyessentials.<command>Использованию команды, как указано выше (значения по умолчанию поля permission).
tinyessentials.fly.others, god.others, feed.others, heal.others, vanish.others, gamemode.others, speed.othersПрименению команды к другому игроку.
tinyessentials.inventory.othersОткрытию инвентаря другого игрока через /invsee.
tinyessentials.inventory.editПеремещению предметов в просматриваемом инвентаре.
tinyessentials.homes.bypass (bypassPermission)Игнорированию лимитов домов и перезарядок телепортации.
tab.staffУчитывается в <tab_staffonline>.
group.<name>Выбирает группу tab и сортировку по группам.
Поля вроде generalPermission, permission, cooldownRules, permissionLimitsПрава, которые вы выбираете в записях.

Плейсхолдеры​

TinyEssentials регистрирует два расширения MiniPlaceholders, используемые как теги MiniMessage.

ПлейсхолдерВозвращает
<tab_online>Игроки в сети.
<tab_staffonline>Игроки в сети с tab.staff.
<tab_worldonline>Игроки в мире смотрящего.
<tab_memory_used> / <tab_memory_max>Используемая и максимальная память в МБ.
<tab_tps>TPS сервера (за 1 минуту) с двумя знаками после запятой.
<tab_date> / <tab_time>Реальная дата машины (dd.MM.yyyy) и время (HH:mm:ss).
<tab_animation:name>Текущий кадр анимации Tab Configuration.
<calendar_date>Дата календаря, например 3 Spring, an 12.
<calendar_time> / <calendar_time_12h>Игровое время в 24- или 12-часовом формате.
<calendar_day>, <calendar_month>, <calendar_month_index>, <calendar_year>, <calendar_weekday>Части даты календаря.
<calendar_day_of_year>, <calendar_total_day>Номер дня в году и с начала отсчёта.
<calendar_event>Название первого события сегодняшнего дня, пусто, если его нет.
<calendar_next_event>, <calendar_next_event_days>Название следующего события и число дней до него.

Каждый плейсхолдер calendar принимает в качестве аргумента id записи Minecraft Time, например <calendar_date:my_calendar_id>; без него используется первый календарь. Они возвращают пустой текст, когда записи Minecraft Time не существует.

Текстовые поля Home Manager используют {home}, {limit}, {cooldown}, {count}, {world} и подобные токены, указанные в справке каждого поля; тексты TPA и сообщений используют {player}, {time}, {sender}, {receiver} и {message}.

Записи​

Записей: 50, сгенерированы из исходного кода расширения.

Действия3
Факты3
Аудитории1
Команды29
Плейсхолдеры1
Артефакты2
Манифесты11

Устранение неполадок​

TinyEssentials n'est pas configure : ajoutez une entree 'tiny_essentials' a une page. Команда была выполнена без опубликованной записи Tiny Essentials. Добавьте её на страницу static и опубликуйте.

Команда не существует или скрыта. Каждая команда — это запись: добавьте соответствующую запись tinyessentials_..._command, опубликуйте и выдайте игроку её permission. Название команды, изменённое в commandName, заменяет прежнее.

Les maisons ne sont pas configurees. Нет записи Home Manager. При ошибках хранилища (stockage des homes est indisponible) проверьте, что artifact у Home Manager указывает на Artifact Home.

Игроки вообще не могут писать в чат. Задан generalPermission записи Chat Format, а у игрока его нет: сообщение чата отменяется. Оставьте поле пустым или выдайте право.

/back сообщает, что предыдущего места нет. Записываются только телепортации, выполненные командами и плагинами. Жемчуг Края и плоды хоруса игнорируются, а история хранит последние backBufferSize мест.

/speed сообщает, что доступна только в творческом режиме. Команда намеренно ограничена творческим режимом, чтобы не конфликтовать с RPG-характеристиками.

Функции tablist ничего не делают. Должен быть установлен PacketEvents. tablistFormattingEnabled, layoutEnabled, bossbarEnabled и scoreboardEnabled — отдельные переключатели, причём последние три по умолчанию выключены.

Плейсхолдеры календаря пусты. Не опубликована запись Minecraft Time или аргумент не совпадает с id существующей записи. Меню или команде календаря также нужна связь minecraft_time.

Связанные расширения​

  • MySQL — Redis для сетевого чата и списка tab.
  • GUI — отрисовывает меню домов, календаря, быстрого перемещения и вики.
  • Translate — переводит сетевой чат для игроков на других серверах.
  • UiCore — статьи вики могут ссылаться на изображения UiCore.