Andrew's Datapack Utils
Полезные утилиты для датапаков: калькулятор, возможность изменять данные игрока и многое другое.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 2,4 тыс.
- Подписчиков на Modrinth
- 6
- версий
- 46
- Обновлён
- 6 апреля 20266 апр.
- Опубликован
- в 2025
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
О поддержке различных версий Minecraft
В последнее время происходит много изменений, из-за которых мне стало сложно поддерживать множество версий одним jar-файлом мода, так что если тебе нужна поддержка какой-то версии — создай issue на github, и я сделаю ветку с поддержкой твоей версии. В остальных случаях я официально поддерживаю только последнюю версию Minecraft.
О моде
Andrew's Datapack Utils — это мод для Fabric/NeoForge/Forge/Paper, нацеленный на создание полезных утилит для датапаков (в основном для функций датапаков). Он добавляет команду, в которой собрана большая часть утилит, и позволяет изменять данные игрока с помощью /data и /execute store, что даёт лёгкий доступ к манипуляции игроками и открывает то, что раньше было невозможно.
Возможности
Базовые математические вычисления
- используются через команду
/aputils calc <add|sub|mul|div|power|sqrt|...>. Отлично работает с/execute store resultи макросами функций.
- используются через команду
Вычисление расстояния
- `/aputils calc distance
или/aputils calc distance entities ` - Может вычислять расстояние между 2 сущностями или 2 блоками: для сущностей используй
/aputils calc distance entities, для блоков —/aputils calc distance(обрати внимание на отсутствиеentities)
- `/aputils calc distance
Редактирование данных игрока
- Обычно нельзя использовать
/dataили/execute store (result|success) entityдля изменения данных сущности игрока — просто выбрасывается ошибкаUnable to modify player data, и ничего не меняется. С этим модом это ограничение снято, что позволяет легко изменять данные сущности игрока. Учти, что не всё можно изменить: попытки поменять некоторые значения, например Motion или Pos, ничего не делают. Для этого используй другие команды, такие как /aputils velocity или /tp. - Недоступно на paper.
- Обычно нельзя использовать
`/aputils velocity [add|set|multiply]`
- позволяет манипулировать скоростью сущностей так, как не получится обычными методами, например изменять скорость игроков (не выйдет с модом на изменение данных игрока, потому что он не отправляет клиенту пакет обновления скорости)
- требует уровень разрешений 2, то есть нужны читы в одиночном мире или уровень разрешений 2 на сервере
`/aputils attack_cooldown `
- Выводит прогресс перезарядки атаки указанного игрока в процентах, если использовать
/execute store result.
- Выводит прогресс перезарядки атаки указанного игрока в процентах, если использовать
`/aputils despawn [force]`
- Удаляет одну или несколько сущностей. Это не то же самое, что /kill: команда просто убирает сущность/сущности из твоего мира, не вызывая никаких событий смерти, тихо удаляя сущность так же, как при обычном исчезновении.
- Если
forceне указан и селектор цели включает одного или нескольких игроков на момент выполнения команды (не если селектор допускает игроков), команда завершается ошибкой. - Требует уровень разрешений 2 или уровень разрешений 4, если указан
force
`/aputils check_damage [type]`
- Возвращает true, если сущность получила урон в тик выполнения команды, и type не указан
- Возвращает true, если сущность получила урон указанного типа в этот тик, если type указан.
- Не работает на старых версиях игры, самая старая протестированная рабочая версия — 1.21.2
- Эта команда всегда возвращает 0, если нужный mixin не загружается
/aputils pathfind <entity: selector> <xyz: Vec3d> [speed: double]или/aputils pathfind <entity: selector> entity <target: selector> [speed: double]- Заставляет моба двигаться к определённой позиции, используя ванильный поиск пути мобов.
- Перезаписывает текущий путь моба, если он есть.
- Имеет необязательный параметр 'speed', который заставляет моба двигаться с этой скоростью при перемещении к указанной позиции. Учти, что для некоторых мобов, например железных големов, их стандартная (1) скорость — это скорость бега. Это не так для всех мобов, но для некоторых верно.
- Если не указан, по умолчанию равен 1.
- Если указанная цель — сущность, моб направится туда, где эта сущность была на момент выполнения команды.
- Не влияет на дельфинов, но влияет на других рыб. Почему так, я пока не знаю, но, вероятно, дельфин использует другой способ навигации, чем остальные мобы.
- Сейчас не выдаёт ответ команды, но работает.
- Мобы иногда прекращают движение к позиции раньше времени. Это из-за обычного поведения ИИ мобов.
`/aputils target `
- Заставляет моба сменить цель на указанную сущность.
- Условия вроде расстояния, игрового режима или наличия текущей цели/атакующего игнорируются.
- Применяется только к мобам, у которых может быть цель, так что на пассивных мобов не влияет.
- Не влияет на Ender Dragon, потому что Ender Dragon не является мобом с обычным поведением.
- Сейчас не выдаёт ответ команды, но работает. Датапаки могут определить, установлен ли этот мод, с помощью
/aputils heartbeat, которая всегда выводит 1 в/execute store result. Датапаки могут определить, используется ли версия мода для NeoForge или Fabric, с помощью /aputils version. Возвращает 1, если используется NeoForge, и 0, если Fabric.
Известные проблемы
Каждый раз при выполнении /aputils velocity в консоль сервера/логи игры выводится "The new velocity is (x, y, z)", что может раздражать
- Это была функция отладки, случайно оставленная включённой, и будет отключена в следующем обновлении.
Примечания
Это можно включить в любой модпак без моего разрешения.
Если хотите портировать это на Forge — вперёд.
Разработчикам
Любой вклад будет очень appreciated!
Забавные факты
Это первый настоящий мод, который я сделал за всю свою историю разработки для Minecraft. До этого я делал только датапаки для minecraft.
О незавершённом порте на Paper
Меня всегда раздражало, что я не могу получить полный функционал некоторых своих датапаков (например, Old Combat Datapack) на серверном ПО на основе плагинов вроде Paper, потому что ADPU не является плагином, так что я решил самостоятельно изучить paper, и теперь ADPU для Paper официально в разработке! Важно отметить, что такие вещи, как изменение данных игрока и проверка урона, будут недоступны, поскольку mixins на paper не работают, так что будьте к этому готовы. Однако обходные пути будут доступны благодаря незавершённой команде "aputils manipulate", которая будет доступна на всех загрузчиках и сможет делать такие вещи, как изменение значений, основанных на здоровье и голоде, среди прочего.
Частые вопросы
Как установить Andrew's Datapack Utils?
Установите Fabric под свою версию Minecraft, скачайте Andrew's Datapack Utils под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Andrew's Datapack Utils?
У Andrew's Datapack Utils есть сборки для Minecraft 1.20.3–26.1.
Нужен ли Andrew's Datapack Utils на сервере?
Ставится только на сервер; игрокам ставить не нужно