- Поддерживаемые версии
- 1.21
- 26
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 21
hLuckyBlock
Автоматические лакиблоки для выделенной игровой зоны
Random Spawning • Multiple Block Types • Custom Durability • TextDisplay Holograms • Base64 Textures • Actions
Автоматические лакиблоки для выделенной игровой зоны
Random Spawning • Multiple Block Types • Custom Durability • TextDisplay Holograms • Base64 Textures • Actions
hLuckyBlock — это система автоматически появляющихся лакиблоков для ивентовых зон, горячих точек, PvP-локаций и других игровых областей.
Плагин случайным образом создаёт лакиблоки внутри WorldGuard-региона или координатного кубоида. Для каждого типа можно настроить материал, вероятность появления, количество необходимых ударов, собственную голограмму, Base64-текстуру и отдельный список наград.
Лакиблоки не разрушаются с одного удара. Каждый блок имеет собственный запас прочности, а встроенная TextDisplay-голограмма в реальном времени показывает, сколько ударов осталось. После полного разрушения игрок получает настроенные награды: деньги, команды, сообщения, звуки, частицы, эффекты, титры, BossBar, фейерверки и другие actions.
Для работы голограмм не требуется отдельный плагин. hLuckyBlock использует стандартные TextDisplay-сущности Paper.
Основные возможности
- Автоматический спавн лакиблоков — блоки появляются через заданный интервал без участия администрации.
- Два режима игровой зоны — WorldGuard-регион или координатный кубоид.
- Неограниченное количество типов — новые лакиблоки добавляются через blocks.yml.
- Случайный выбор типа — каждый блок имеет собственную вероятность появления.
- Несколько уровней прочности — каждому типу назначается своё количество необходимых ударов.
- Динамическая голограмма — количество оставшихся ударов обновляется после каждого попадания.
- Встроенные TextDisplay-голограммы — сторонний HolographicDisplays не требуется.
- Многострочные голограммы — поддержка MiniMessage, HEX-цветов и градиентов.
- Base64-текстуры — над блоком можно отображать собственную текстуру головы.
- Асинхронная подготовка голов — текстуры создаются и кэшируются без постоянной повторной обработки.
- Отдельные награды каждого типа — хлипкий, прочный и редкий блоки могут выдавать разные призы.
- 13 типов actions — сообщения, команды, экономика, звуки, частицы, титры и другие действия.
- Vault-экономика — можно добавлять, забирать, очищать или устанавливать баланс.
- PlaceholderAPI — встроенные плейсхолдеры и поддержка внешних PAPI-значений в actions.
- Контроль поверхности — лакиблоки могут появляться только над твёрдыми блоками.
- Чёрный список поверхностей — запрет спавна над стеклом, плитами, ступенями и другими материалами.
- Поддержка масок — например *_SLAB, *_STAIRS или *GLASS.
- Минимальное расстояние — защита от появления нескольких лакиблоков слишком близко друг к другу.
- Проверка свободного места — новый блок не заменяет уже установленный блок мира.
- Лимит активных лакиблоков — настраиваемое максимальное количество.
- Два поведения при достижении лимита — остановить новый спавн или удалить все блоки.
- Восстановление оставшихся блоков — плагин может повторно определить лакиблоки и визуальные сущности после некорректной остановки.
- Очистка потерянных сущностей — удаление старых TextDisplay и ArmorStand, оставшихся без рабочего блока.
- Проверка активных блоков — если блок был изменён сторонней системой, запись автоматически очищается.
- Безопасная очистка при выключении — активные лакиблоки и их визуальные элементы удаляются.
- Ручной запуск и остановка — управление задачей спавна через команду.
- Ручная очистка зоны — удаление всех активных лакиблоков и связанных сущностей.
- Русская и английская локализации.
- Настраиваемые административные ответы — команды используют ту же систему actions.
Как работает hLuckyBlock?
После запуска плагин автоматически создаёт задачу спавна.
Через каждый настроенный интервал hLuckyBlock:
- проверяет доступность мира и игровой зоны;
- проверяет существующие лакиблоки;
- сравнивает текущее количество с лимитом;
- случайно выбирает тип блока по его chance;
- ищет подходящую свободную позицию;
- проверяет поверхность и минимальное расстояние;
- устанавливает блок без лишней физики;
- создаёт TextDisplay-голограмму;
- добавляет визуальную Base64-голову;
- начинает отслеживать прочность нового блока.
Игрок наносит удары по лакиблоку. Обычное разрушение отменяется, а внутреннее значение прочности уменьшается на один.
Если прочность ещё осталась, голограмма обновляется.
Когда значение достигает нуля:
- лакиблок удаляется;
- голограмма удаляется;
- Base64-визуал удаляется;
- запись убирается из активного списка;
- для игрока выполняются actions выбранного типа.
Режимы зоны
hLuckyBlock поддерживает два способа настройки территории.
REGION
Используются границы указанного WorldGuard-региона:
Код:
luckyZone:
mode: REGION
region:
world: "spawn"
region: "hotzone"
Для этого режима необходимы WorldEdit и WorldGuard.
Плагин получает минимальные и максимальные координаты региона и использует полученную область для поиска точек спавна.
CUBOID
Зона задаётся двумя крайними координатами:
Код:
luckyZone:
mode: CUBOID
cuboid:
world: "spawn"
pos1:
x: -50
y: 60
z: -50
pos2:
x: 50
y: 100
z: 50
Режим CUBOID не требует WorldEdit и WorldGuard.
Порядок указания точек не имеет значения: плагин самостоятельно определяет минимальные и максимальные координаты.
Настройка спавна
Интервал между попытками задаётся в миллисекундах:
Код:
timeToSpawn: 3000
Стандартное значение 3000 равно трём секундам.
Для выбора позиции доступны дополнительные правила:
Код:
spawn:
onlyOnSolidSurface: true
minimumDistance: 1
blockedSupportMaterials:
- "*_TRAPDOOR"
- "*_SIGN"
- "*_CORAL*"
- "BARREL"
- "*_SLAB"
- "COBWEB"
- "*_STAIRS"
- "*GLASS*"
onlyOnSolidSurface — разрешает появление только над твёрдой поверхностью.
minimumDistance — защитное расстояние между активными лакиблоками по горизонтали. Значение 0 отключает проверку.
blockedSupportMaterials — материалы, над которыми нельзя создавать лакиблок.
В списке поддерживается символ *.
Примеры:
Код:
*_SLAB
Запретит все виды плит.
Код:
*_STAIRS
Запретит все виды ступеней.
Код:
*GLASS*
Запретит материалы, содержащие GLASS в названии.
При поиске поверхности плагин дополнительно проверяет:
- что позиция будущего блока свободна;
- что опорный блок является твёрдым;
- что опора не является материалом другого лакиблока;
- что позиция находится внутри настроенной зоны;
- что высота допустима для текущего мира.
Типы лакиблоков
Каждый тип создаётся в:
Код:
blocks.yml
Ключ секции является материалом настоящего блока Minecraft.
Пример:
Код:
blocks:
GLASS:
chance: 0.33
breakCount: 3
hologramY: 1.1
hologram:
- "<gold>Хлипкий лакиблок</gold>"
- "<white>Необходимо сломать <gold>{breakCount}</gold> раз!</white>"
texture: "BASE64"
Для каждого типа настраиваются:
- Material — материал физического блока.
- chance — вероятность выбора от 0.0 до 1.0.
- breakCount — количество ударов до разрушения.
- hologramY — высота голограммы.
- hologram — многострочный текст.
- texture — Base64-текстура визуальной головы.
В голограмме доступен:
Код:
{breakCount}
Он автоматически заменяется на текущее количество оставшихся ударов.
Сумму всех chance рекомендуется делать равной 1.0. Если сумма меньше единицы, некоторые попытки спавна могут завершаться без выбора блока.
Готовые типы
Стандартный blocks.yml содержит три примера.
GLASS — хлипкий лакиблок
- шанс: 0.33;
- прочность: 3 удара;
- стандартная награда: 100 единиц Vault и 10 поинтов через консольную команду.
WHITE_STAINED_GLASS — прочный лакиблок
- шанс: 0.33;
- прочность: 4 удара;
- стандартная награда: 150 единиц Vault и 15 поинтов.
LIGHT_GRAY_STAINED_GLASS — брутальный лакиблок
- шанс: 0.34;
- прочность: 5 ударов;
- стандартная награда: 200 единиц Vault и 20 поинтов.
Все материалы, вероятности, названия и награды являются примерами и полностью изменяются через конфигурацию.
Динамические голограммы
hLuckyBlock использует встроенные TextDisplay-сущности Paper.
Для работы не требуется:
- HolographicDisplays;
- DecentHolograms;
- отдельный пакетный плагин;
- ресурспак.
Поддерживаются:
- несколько строк;
- MiniMessage;
- HEX-цвета;
- градиенты;
- стили Adventure;
- индивидуальное смещение по высоте;
- динамический остаток прочности.
После каждого успешного удара значение
{breakCount} обновляется.Когда блок исчезает, связанная голограмма удаляется автоматически.
Base64-текстуры
Для каждого типа можно указать собственную Base64-текстуру головы.
Визуальная голова отображается над физическим блоком и позволяет использовать красивый внешний вид без замены самого Material.
Преимущества:
- разные текстуры для разных типов;
- не требуется ресурспак;
- не требуется внешний API голов;
- текстуры кэшируются;
- поддерживается стандартный Paper PlayerProfile fallback;
- визуальные сущности имеют внутренние метки для последующей очистки.
Физическим блоком при этом остаётся материал из blocks.yml. Именно по нему определяется тип, прочность и список наград.
Лимит активных блоков
Максимальное количество задаётся в config.yml:
Код:
limit:
count: 35
action: STOP_SPAWN
Поддерживаются два действия.
STOP_SPAWN
Когда достигнут лимит, новые лакиблоки временно перестают появляться.
После разрушения одного из существующих блоков спавн автоматически продолжится.
DELETE_ALL
Когда достигнут лимит, плагин удаляет все активные лакиблоки, голограммы и визуальные головы.
На следующем цикле зона начнёт заполняться заново.
Это позволяет создавать периодическую автоматическую очистку и полное обновление содержимого игровой зоны.
Награды и система actions
Для каждого типа лакиблока задаётся собственный список действий:
Код:
actions:
blocks:
GLASS:
- "[VAULT] action:give && count:100"
- "[CONSOLE] p give {player} 10"
Поддерживаемые типы:
Код:
[MESSAGE]
[ACTIONBAR]
[TITLE]
[SOUND]
[PARTICLE]
[BOSSBAR]
[BROADCAST]
[CONSOLE]
[PLAYER]
[VAULT]
[EFFECT]
[FIREWORK]
[CLOSE]
Actions позволяют:
- отправлять сообщения игроку;
- показывать ActionBar;
- показывать Title и Subtitle;
- создавать временный BossBar;
- проигрывать звуки;
- создавать частицы в точке лакиблока;
- запускать визуальные World-эффекты;
- создавать фейерверк;
- отправлять сообщение всему серверу;
- выполнять команду от консоли;
- выполнять команду от игрока;
- изменять баланс через Vault;
- закрывать открытый инвентарь.
В actions доступны:
Код:
{player}
{prefix}
Также текст обрабатывается через PlaceholderAPI от лица игрока.
Vault-actions
Для денежной награды используются параметры:
Код:
[VAULT] action:give && count:100
Поддерживаемые операции:
- give или add — добавить деньги;
- remove, take или delete — забрать деньги;
- clear — обнулить баланс;
- set — установить точный баланс.
Vault и совместимый экономический плагин нужны только при использовании
[VAULT].Если Vault отсутствует, остальные функции hLuckyBlock продолжают работать.
Восстановление и очистка
hLuckyBlock использует внутренние метки для TextDisplay и ArmorStand.
При запуске плагин может:
- найти оставшиеся визуальные головы;
- сопоставить их с физическими блоками;
- повторно создать внутреннюю запись прочности;
- пересоздать голограмму;
- удалить устаревшую визуальную сущность;
- определить настроенные материалы, которые остались без записи.
Это помогает восстановить рабочее состояние после аварийной остановки, некорректной перезагрузки или вмешательства стороннего плагина.
Во время обычной работы выполняется сверка активных блоков. Если физический блок больше не совпадает с ожидаемым материалом, его запись и визуальные элементы удаляются.
При корректном выключении сервера активные лакиблоки очищаются.
Команда reload также очищает текущие блоки, повторно загружает конфиги и запускает задачу с новыми настройками.
PlaceholderAPI
Identifier расширения:
Код:
hluckyblock
Доступные плейсхолдеры:
Код:
%hluckyblock_count%
%hluckyblock_timetospawn%
%hluckyblock_count%
Возвращает текущее количество активных лакиблоков.
%hluckyblock_timetospawn%
Возвращает оставшееся время до следующей попытки спавна в миллисекундах.
Если задача остановлена, плейсхолдеры возвращают 0.
Их можно использовать в:
- TAB;
- scoreboard;
- holograms;
- меню;
- BossBar;
- других плагинах с поддержкой PlaceholderAPI.
Команды
Код:
/hluckyblock
Показать справку.
Код:
/hluckyblock reload
Перезагрузить локализацию и конфигурации, обновить зависимости, удалить текущие лакиблоки и перезапустить задачу спавна.
Код:
/hluckyblock start
Запустить задачу автоматического спавна.
Если активные лакиблоки остались после команды stop, новая задача повторно определит их состояние.
Код:
/hluckyblock stop
Остановить новые попытки спавна.
Уже появившиеся лакиблоки остаются в мире и могут быть разрушены или удалены командой restore.
Код:
/hluckyblock restore
Удалить все активные лакиблоки, голограммы и визуальные головы в настроенной зоне.
Команды поддерживают tab-complete.
Права
Код:
hluckyblock.admin
Доступ ко всем административным командам:
- /hluckyblock reload;
- /hluckyblock start;
- /hluckyblock stop;
- /hluckyblock restore.
Код:
hluckyblock.break
Разрешает разрушать лакиблоки и получать награды.
Оба права по умолчанию доступны операторам сервера.
Для обычных игроков необходимо отдельно выдать:
Код:
hluckyblock.break
При отсутствии права обычное разрушение отменяется и выполняются actions из секции
noPermsForBreak.Файлы конфигурации
Код:
locale.yml
Выбор локализации.
Доступные значения:
Код:
ru
en
Код:
config.yml
Основные настройки спавна, зоны, поверхностей и лимитов.
Код:
blocks.yml
Типы лакиблоков, вероятности, прочность, голограммы и Base64-текстуры.
Код:
actions.yml
Награды блоков и реакции административных команд.
Код:
messages.yml
Текстовые ответы для консоли и резервные сообщения.
Что можно настроить?
- локализацию;
- префикс;
- значение неизвестного игрока;
- интервал спавна;
- режим REGION или CUBOID;
- мир;
- WorldGuard-регион;
- две координатные точки;
- спавн только над твёрдой поверхностью;
- минимальное расстояние;
- чёрный список опорных материалов;
- wildcard-маски материалов;
- лимит активных блоков;
- действие при достижении лимита;
- количество типов;
- материал каждого типа;
- вероятность каждого типа;
- прочность каждого типа;
- высоту голограммы;
- строки голограммы;
- Base64-текстуру;
- награды каждого типа;
- денежные операции;
- консольные команды;
- команды игрока;
- сообщения;
- звуки;
- ActionBar;
- Title;
- BossBar;
- частицы;
- фейерверки;
- World-эффекты;
- административные actions;
- MiniMessage и HEX-цвета.
Зависимости и совместимость
Обязательные:
- Java 21
- Paper/Purpur 1.21.x
- PlaceholderAPI
Для режима REGION:
- WorldEdit
- WorldGuard
Опционально:
- Vault — денежные actions.
- любой Vault-совместимый экономический плагин.
- Зависимости
- PlaceholderAPI (Обязательно). WorldEdit, WorldGuard, Vault (Необязательно)
- Команды и права
- Всё выше написано