▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Датапаки/Moxlib - библиотека для разработки датапаков
Moxlib - библиотека для разработки датапаков

Moxlib - библиотека для разработки датапаков

Moxlib - библиотечный датапак для Minecraft с готовыми функциями, тегами и предикатами: работа с NBT-массивами, строками, математикой и текстовыми интерфейсами. Скачать Moxlib для Minecraft 1.19-1.21.

Оцените первым
1.8K
9

Moxlib - это библиотека для разработчиков датапаков от автора Moxvallix: большой набор готовых функций, тегов и предикатов, который берет на себя всю рутину при создании датапаков для Майнкрафт. Если вы хоть раз пытались на чистых mcfunction-файлах реализовать обход массива NBT, манипуляции со строками или математику посложнее стандартных операций скорборда, то знаете, насколько это боль. Командный язык Minecraft сам по себе очень ограничен, и Moxlib как раз закрывает эти дыры, превращая разработку из страдания в нормальный рабочий процесс.

Сразу важный момент: это инструмент для создателей контента, а не для обычных игроков. Сам по себе датапак Moxlib ничего в игру не добавляет - ни мобов, ни блоков, ни механик. Его ставят как зависимость, чтобы другие датапаки работали через его API. Скачать Moxlib стоит либо если вы пишете свои датапаки, либо если какой-то проект прямо требует его в списке зависимостей.

Философия проекта: производительность прежде всего

Главная фишка библиотеки - она почти не грузит игру. Автор сознательно свел к минимуму всё, что выполняется в tick-функции: подавляющее большинство функций запускается только тогда, когда их вызывают. Никаких фоновых проверок каждый игровой тик.

Второй принцип - мгновенное выполнение. Функции спроектированы так, чтобы отрабатывать за один тик, без schedule-цепочек и таймеров. Для серверов это критично: многие датапаки просаживают TPS именно из-за постоянных отложенных задач и циклических проверок, а тут такой проблемы просто нет по дизайну.

Как устроен API

API у Moxlib предсказуемый и построен вокруг data-driven подхода. Основные правила, которые нужно знать перед работой:

  • Всё, что лежит за пределами папки moxlib:api, считается приватным и не поддерживается. Лезть туда в своих проектах не стоит.
  • Функции, принимающие данные через storage, читают и пишут по тому же пути, по которому вы их вызываете. Например, /function moxlib:api/helpers/block/get запишет результат в /data get storage moxlib:api/helpers/block/get. Удобно: путь вызова и путь данных всегда совпадают.
  • Исключение - модули test и tui, у них своя семантика под конкретные задачи.
  • Основной входной аргумент обычно называется target - это данные, которые функция обрабатывает. Результат, если он есть, пишется в output. Некоторые функции дополнительно проставляют флаг success, но не все.
  • Часть функций и модулей помечена как экспериментальная. Для них нужен Moxlib Exp - без него они не заведутся.

Модули библиотеки

Весь функционал разбит на тематические модули. Вот что есть внутри:

МодульЧто делает
HelpersМелкие, но полезные функции-помощники, слишком специфичные для отдельного модуля
DataРабота с массивами NBT-данных - обход, обработка, манипуляции
TestТестирование других функций: пока умеет проверять, что функция вернула корректное значение
TUIСоздание текстовых интерфейсов на основе данных - кликабельные меню и панели в чате
MathМатематические функции, которых не хватает в ванильном скорборде
PlayerДоступ к полезной информации об игроке
StringМанипуляции со строками - то, чего в ванили практически нет
DimensionОтдельное измерение для хранения и доступа к блокам (требует Moxlib Exp)

Пару слов о том, почему это ценно. Модуль String решает одну из самых старых болей датапакеров - в Minecraft нет нативных инструментов для работы со строками, и любая конкатенация или поиск подстроки превращается в костыли. Модуль Dimension дает служебное измерение с известными блоками, а это классическая основа для продвинутых трюков с NBT предметов и инвентарей. А TUI позволяет быстро собирать интерактивные меню через tellraw-компоненты, не выписывая каждый JSON вручную.

Версии и лицензия

Последний релиз - 0.5.13, вышел 19 июня 2024 года и рассчитан на Minecraft Java 1.21. В этом обновлении автор поднял требование версии и заодно починил работу ASCII-таблицы лута. До этого были сборки под 1.19.x и 1.20.x, так что если ваш проект живет на более старой версии игры, подходящий релиз тоже найдется. Учитывайте только, что новых версий с июня 2024 не выходило - для самых свежих обновлений Майнкрафта совместимость стоит проверять самостоятельно.

Библиотека распространяется под лицензией GNU LGPL. На практике это значит: вы можете свободно использовать Moxlib в своих датапаках под любой лицензией, но если изменяете саму библиотеку, эти изменения должны публиковаться под LGPL. Для типичного использования как зависимости никаких ограничений нет.

Советы из практики

  • Так как это датапак, на сервер он ставится элементарно: кидаете в папку datapacks вашего мира, и игрокам ничего скачивать не нужно - всё работает на стороне сервера.
  • Не используйте приватные функции вне moxlib:api, даже если они делают ровно то, что вам надо. При обновлении библиотеки они могут измениться или пропасть, и ваш датапак молча сломается.
  • Если планируете модуль Dimension - сразу закладывайте в зависимости Moxlib Exp, иначе функции просто не отработают.
  • Модуль Test полезен на этапе разработки: пишете свою функцию, прогоняете через тесты и проверяете возвращаемые значения. На релизной сборке его можно не тащить.

Если вы собираетесь писать свой датапак для Minecraft и не хотите изобретать велосипеды для базовых операций - скачать датапак Moxlib будет правильным первым шагом. Это аккуратная, быстрая и продуманная основа, которая экономит десятки часов разработки.

Партнёрский материал

Как запустить датапак Moxlib - библиотека для разработки датапаков на сервере?

Датапак Moxlib - библиотека для разработки датапаков удобнее всего раскрывается на общем сервере: установили один раз - и вся компания играет с новыми механиками. Создать сервер Майнкрафт с датапаком Moxlib - библиотека для разработки датапаков можно за пару минут вместе с BungeeHost.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

23w03a1.21.x1.20.x1.19.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки


Детали

Лицензия:
Опубликован:3 года назад
Обновлён:2 года назад
Главная