▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Датапаки/Datapack Function Library
Datapack Function Library

Datapack Function Library

Библиотека функций для создателей датапаков в Майнкрафт. Набор готовых механик: от мягкого бана и лифтов до авто-плавки и TPA. Совместима со всеми версиями, где работают датапаки.

Оцените первым
36.1K
10

Datapack Function Library (DFL) - это не мод, а библиотека функций для датапаков Minecraft. Если вы когда-нибудь хотели добавить на сервер лифты из железных блоков, систему TPA или авто-плавку, но не хотели ставить тяжелые плагины - этот датапак для вас. По сути, это готовый набор скриптов, которые вы просто подключаете и используете.

Датапак распространяется под лицензией GNU LGPL, так что можете смело встраивать его в свои сборки. Работает на всех версиях Майнкрафт, где вообще можно установить датапак (начиная с 1.13). Правда, на совсем старых версиях некоторые функции могут не работать - слишком много команд.

Для корректного отображения текста на русском (начиная с версии 3.2+) нужно установить ресурспак. Без него язык датапака будет китайским (zh_cn).

Как проверить, загружен ли датапак

В датапаке есть специальная функция dfl:dfl_enable, которая устанавливает счёт 1 для всех сущностей в объективе dfl_scoreboard. Это удобно для других датапаков или модов, которые зависят от DFL.

Пример проверки:

# Выполняется при загрузке датапака:
scoreboard objectives add dfl_scoreboard dummy
scoreboard players set dfl_enable dfl_scoreboard 0
# Если не загружен:
function dfl:dfl_enable
execute unless score dfl_enable dfl_scoreboard matches 1
# Если загружен:
function dfl:dfl_enable
execute if score dfl_enable dfl_scoreboard matches 1

Важный момент: у некоторых функций есть "предварительные функции" (prerequisite functions), которые нужно выполнить один раз перед использованием основной. А функции с параметрами вроде {xx:"xx"} - это макросы, им нужно передавать аргументы через {<имя_параметра>:"<значение>"}.

Функции для запуска при загрузке (Start)

Эти функции лучше всего выполнять один раз при загрузке или перезагрузке датапака.

Отключение особого урона

/function dfl:start/disable_special_damage Отключает урон от падения, огня, замерзания и утопления. Полезно для мини-игр или творческих режимов.

Фиксация точки возрождения на 0 0

/function dfl:start/set_world_spawn Устанавливает точку возрождения мира на 0 0 0 с радиусом 0. Игроки будут появляться на самом высоком блоке в этих координатах.

Включение таблицы смертей

/function dfl:start/show/enable_death_scoreboard Создаёт объектив death и отображает количество смертей игроков справа на экране, сортируя от большего к меньшему. Правда, таблица появится только после первой смерти кого-либо.

Отображение здоровья под ником

/function dfl:start/show/display_health_below_name Показывает здоровье игрока под его именем. На расстоянии пропадает - остаётся только ник. При первом включении будет показывать 0, пока значение не обновится (например, после получения урона).

Уровень опыта в Tab

/function dfl:start/show/display_level_in_tab Отображает уровень опыта каждого игрока в списке игроков (Tab). Аналогично - сначала будет 0.

Полоска здоровья в Tab

/function dfl:start/show/display_health_in_tab Показывает полоску здоровья каждого игрока в Tab-меню.

Быстрое создание команд

/function dfl:start/create_teams {team_blue:"blue",team_red:"red",prefix_blue:"blue",prefix_red:"red"} Создаёт две команды с указанными названиями и префиксами. Отключает friendly fire и коллизию между своими. Цвета - синий и красный.

Функции для каждого тика (Tick)

Эти функции нужно выполнять каждый игровой тик (20 раз в секунду).

Мягкий бан игрока

/function dfl:tick/soft_ban_player {title:"Причина бана",subtitle:"Примечание"} Исполнителем должна быть сущность, которую нужно забанить. Реализует "мягкий" бан: постоянно телепортирует игрока на 0 0 0, переключает в режим приключения и вешает негативные эффекты. Пример: /execute as @a[tag=ban] run function dfl:tick/soft_ban_player {title:"Нарушение правил",subtitle:"Обратитесь к админу"}

Лифт на маяке

/function dfl:tick/beacon_fly Если под маяком есть блоки железа, золота, изумрудов, алмазов или незерита - игрок телепортируется вверх. Высота зависит от материала: 20, 40, 60, 80 и 100 блоков соответственно. Одинаковые блоки можно стакать - максимальная высота 400 блоков (4 незеритовых блока). Зрители не телепортируются.

Отрицательные эффекты одним кликом

/function dfl:tick/apply_debuffs Вешает на исполнителя кучу дебаффов: замедление, усталость от добычи, тошноту, тьму, голод, слабость, отравление, невезение и trial_omen.

Лифт из железных блоков

/function dfl:tick/iron_block_elevator Если игрок стоит между двумя железными блоками друг над другом - его телепортирует вверх. Максимальная дистанция - 6 блоков (то есть между блоками может быть до 5 блоков). Работает и с мобами.

Очистка при переизбытке сущностей

/function dfl:tick/kill_excess_entities {num:"1000"} Удаляет всех не-игроков, если их количество превышает {num}. Не трогает сущности с тегом need. После очистки выводит сообщение в чат.

Очистка по плотности сущностей

/function dfl:tick/kill_by_density {num:"50"} Предварительная функция: /function dfl:lib/get_entity_density Удаляет сущности, если в радиусе 10 блоков их больше {num}. Не убивает игроков, жителей и сущности с тегом need. Работает без сообщений в чате.

Minecraft стал слишком сложным?

/function dfl:tick/mith Включает сохранение инвентаря при смерти, даёт ночное зрение, свечение (glowing) и убирает эффект тьмы.

Отображение количества сущностей

/function dfl:tick/display_entity_count Предварительная функция: /function dfl:lib/get_entity_count Показывает реальное количество сущностей в action bar (над панелью быстрого доступа).

Отключение friendly fire и коллизий

/function dfl:tick/disable_friendly_fire Создаёт команду dfl и добавляет туда всех игроков. Отключает урон по своим и коллизию внутри команды. Если не запускать каждый тик - выполняйте после каждого нового игрока.

Очистка динамита по плотности

/function dfl:tick/kill_tnt_by_density {num:"200"} Удаляет TNT-сущности, если в радиусе 5 блоков их больше {num}.

Самоубийство для игроков без прав

/function dfl:tick/trigger_✨ Создаёт объектив kill. Игроки могут написать /trigger kill, чтобы убить себя - никаких прав не нужно.

Замена блоков на большой площади

/function dfl:tick/change_block {new:"glass",old:"stone",num:"30"} Заменяет {old} на {new} в кубе {num}*8 вокруг игрока. Меняет лимит commandModificationBlockLimit на максимальный.

Вечный день + ясная погода

/function dfl:tick/always_sunny Отключает цикл дня и ночи, отключает смену погоды, устанавливает время на день и погоду на ясную.

Очистка одного предмета с выполнением команды

/function dfl:tick/clear_and_execute_single {name:"stone",run:"tp ~ 100 ~"} Забирает один {name} у всех игроков и выполняет {run}. В команде не должно быть лишних пробелов и слеша в начале.

Очистка предметов с многократным выполнением команды

/function dfl:tick/clear_and_execute_multiple {name:"sand",run:"give @s anvil"} Забирает все {name} у исполнителя и выполняет {run} столько раз, сколько предметов было забрано (все в одном тике).

Поддержание количества предмета

/function dfl:tick/maintain_item_count {name:"slime_block",num:"64"} Гарантирует, что у исполнителя будет ровно указанное количество предмета.

Платформа для спасения

/function dfl:tick/create_rescue_platform Предварительная функция: /function dfl:lib/get_game_time Создаёт платформу 3x3 из слизневых блоков под игроком с тегом dfl_slime. Блоки исчезают через заданное время (по умолчанию 200 тиков = 10 секунд). Блоки рядом с игроком при генерации очищаются.

Превращение предметов в опыт

/function dfl:tick/things_to_xp {name:"tnt",xp:"1"} Конвертирует каждый {name} у исполнителя в {xp} очков опыта.

TPA - телепортация к игроку

/function dfl:tick/tpa Предварительная функция: /function dfl:lib/generate_player_id Создаёт объективы tpa и tpa_enable. Игроки пишут /trigger tpa set <ID игрока> (ID виден в Tab), чтобы телепортироваться. /trigger tpa_enable разрешает телепортацию к себе (отменить нельзя). Если цель недоступна - система ждёт.

Авто-плавка

/function auto_smelt:smelt {input:"raw_iron",output:"iron_ingot"} Потребляет {input} и выдаёт соответствующее количество {output}. Плавка одного предмета стоит 1 очко опыта. Если есть несколько видов топлива - используются все сразу. Угольный блок позволяет переплавить 9 предметов за раз (снимает 9 опыта).

Функции для таймера (Timer)

Эти функции лучше запускать по расписанию через /schedule, а не каждый тик.

Очистка выброшенных предметов

/function dfl:timer/clear_items Удаляет все выброшенные предметы и выводит количество через /tellraw. Не трогает предметы с тегом need.

Информация о сущностях

/function dfl:timer/display_entity_info Предварительные функции: /function dfl:lib/get_entity_count, /function dfl:lib/get_item_count, /function dfl:lib/non_player_entities. Выводит подробную статистику по сущностям.

Библиотечные функции (Lib)

Эти функции либо ничего не делают сами по себе, либо используются как вспомогательные.

Принудительное выпадение при смерти

/function dfl:lib/force_death_drops Отключает keepInventory, убивает исполнителя, включает keepInventory обратно.

Получение количества сущностей / предметов / игроков / дней / времени / плотности / UID / количества предметов / генерация болванок / модификация здоровья / стеклянная клетка / подсчёт предметов / генерация UID / создание болванок - все эти функции описаны выше в соответствующих разделах или имеют очевидное назначение.

Диалоги (Dialog)

В датапаке есть два диалога с текстом лицензий GNU GPL v3.0 и GNU LGPL v3.0. Используются через /dialog show dfl:gpl или /dialog show dfl:lgpl. Полезно, если нужно быстро показать текст лицензии в игре.


В целом, Datapack Function Library - это швейцарский нож для создателей датапаков. Если вы делаете карту или мини-игру на ванильном Minecraft - этот датапак сэкономит вам кучу времени. Просто подключите его как зависимость и вызывайте готовые функции.

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

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

Minecraft: Java Edition

1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x

Платформы

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

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

Ссылки

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:8 месяцев назад
Главная