Ванильный спавнер на донате — вечная головная боль. Заплативший игрок сносит блок без Шёлкового Прикосновения — и спавнер просто исчезает, никакого предмета в кармане. Или подходит с яйцом спавна и тихо переназначает моба под свой — донат-товар угнан прямо у вас на глазах. CloudSuperSpawners закрывает обе дыры и превращает спавнер в честный, настраиваемый донат-предмет: ставится как блок, работает как продуманный генератор мобов, ломается только с умом.
Снаружи — обычный ванильный спавнер, ничем не палится. Внутри — своя логика: набор мобов, свои веса, свой интервал, свой кап на количество рядом. Всё целиком в конфиге, без правки кода и без рестарта сервера.
Спавнер-предмет: блок SPAWNER с меткой типа в PDC (superspawners:type). Плагин узнаёт свои предметы именно по этой метке, а не по имени — переименовать в наковальне и выдать за другой тип не получится. Игрок ставит предмет — на месте появляется рабочий супер-спавнер того типа, что был выдан командой. Типов сколько угодно, каждый — отдельная запись в конфиге со своим набором мобов, ритмом спавна и редкостью; ниже разобраны все шесть, что идут из коробки, плюс шаблон для седьмого.
Игрок ставит предмет-спавнер как обычный блок — плагин узнаёт тип по метке в PDC, регистрирует координаты во внутреннем реестре и уже на следующем тике глушит ванильный спавн блока: 0 мобов за цикл, нулевой радиус игрока, огромная задержка. Внешне блок остаётся обычным спавнером — та же крутящаяся модель моба внутри, — просто ванильный движок у него молчит навсегда, а спавн ведёт отдельный планировщик плагина.
Планировщик проверяет каждый зарегистрированный спавнер по своему шагу (по умолчанию раз в секунду) и первым делом смотрит, есть ли игрок в радиусе activation-range — простым расстоянием, без обращения к чанкам, чтобы не будить лишний раз спящий мир. Только если игрок рядом, плагин трогает сам блок и проверяет, что чанк загружен. Если блок пропал не через плагин — снесли взрывом, WorldEdit, другим плагином, — реестр сам стирает запись при следующей проверке, без ошибок в консоли и без зомби-записей.
Раз в свой interval-seconds спавнер выдаёт не одного моба, а сразу пачку — count-per-cycle штук, и каждый слот пачки — независимый взвешенный бросок по весам набора. Значит, в «Адском» пачка из двух мобов вполне может выпасть два Ифрита подряд или два Магмовых куба — гарантии «по одному от каждого» нет, только вероятность.
Перед спавном планировщик считает живых существ в радиусе activation-range (кубом со стороной в этот радиус, не сферой) — и если их уже max-nearby или больше, цикл пропускается целиком, а не переносится на ближайшую свободную секунду: следующая попытка — только через полный interval-seconds заново. Кап при этом считает вообще всех живых существ рядом, не только мобов этого спавнера, — если поставить два разных типа близко друг к другу, они будут делить один лимит и подтормаживать друг друга. Таймер последнего спавна хранится в памяти, а не в файле, так что после каждого перезапуска сервера все спавнеры стартуют так, будто интервал уже прошёл, и готовы спавнить сразу.
SPAWNER не зарегистрирован плагином — обычный ванильный спавнер, поставленный яйцом или найденный в подземелье, — все листенеры его не трогают, ломается и переназначается как обычно.Из коробки — шесть наборов, у каждого свой состав мобов и свой ритм. Логика веса простая: вес — это доля из ста, и во всех шести наборах веса мобов складываются ровно в 100, так что процент ниже — не округление, а точный шанс. Там, где есть редкий подшанс, он всегда с маленьким весом и превращает обычный фарм в маленькую лотерею при каждом цикле.
id friendly, custom-model-data 690001. Интервал 15 секунд, 3 моба за цикл, радиус активации 16 блоков, кап рядом — 20. Все веса ровно по 25 — раритетов внутри набора нет, это чистая ферма фауны для шерсти, яиц, кожи, говядины и свинины. Логичный первый спавнер для младшего доната: никакой боёвки, только мирная живность.
SHEEP — 25%CHICKEN — 25%COW — 25%PIG — 25%id common, custom-model-data 690002. Самый быстрый цикл из всех шести — 12 секунд, 3 моба за раз, радиус 16, кап 20 (вместе с «Дружелюбным» — самый высокий лимит рядом). Редкого подшанса нет, зато у набора самый высокий суммарный поток мобов среди всех шести: порох, кости, паутина, стрелы, гнилая плоть, изредка — паучий глаз.
ZOMBIE — 40%SKELETON — 35%SPIDER — 25%id sea, custom-model-data 690003. Интервал 20 секунд, 3 моба, радиус 16, кап 15. Пять рыбных мобов и Страж дают ровный фарм, а на дне пачки спрятан Древний Страж — 2% из ста, самый редкий подшанс во всём плагине. Он накладывает Усталость от горной добычи на игроков рядом, так что застать его чистым сюрпризом — часть удовольствия. Ставить такой спавнер стоит строго под водой: плагин спавнит мобов над блоком без проверки среды, и рыба на суше просто задохнётся.
COD — 30%SALMON — 25%PUFFERFISH — 15%TROPICAL_FISH — 15%GUARDIAN — 13%ELDER_GUARDIAN — 2% (редкий)id rare, custom-model-data 690004. Интервал 18 секунд, 3 моба, радиус 16, кап 15. Три опасных зомби-варианта примерно поровну — Утопленник иногда роняет трезубец или наутилусовую раковину, чего обычный зомби никогда не даст, — и Крипер на 4% сверху. Тот самый риск набора: цикл может тихо подложить взрывного гостя рядом с постройками, если сервер не гасит урон блокам от взрыва.
HUSK — 33%DROWNED — 33%STRAY — 30%CREEPER — 4% (редкий)id hell, custom-model-data 690005. Интервал 18 секунд, но пачка меньше — всего 2 моба за цикл, радиус 16, кап 15. Редкого подшанса нет: все три моба — уже сами по себе награда. Скелет-иссушитель изредка роняет свой череп, Ифрит — стержни для розжига и зельеварения, Магмовый куб — крем. И всё это без похода в Незер и без риска лавы: плагин спавнит их поверх обычного блока где угодно.
WITHER_SKELETON — 40%BLAZE — 40%MAGMA_CUBE — 20%id village, custom-model-data 690006. Интервал 20 секунд (самый редкий ритм наравне с «Морским»), 2 моба за цикл, радиус 16, кап 15. Разбойники и Каратели — костяк рейда иллагеров, Ведьма подмешивает зелья и редкие ингредиенты, а на 3% — Заклинатель, единственный моб во всём плагине, гарантированно дающий Тотем Бессмертия при смерти. Он же на арене вызывает вексов — редкий подшанс тут одновременно и самая жирная награда, и самая опасная драка набора.
PILLAGER — 40%VINDICATOR — 35%WITCH — 22%EVOKER — 3% (редкий)Сводка по ритму и лимитам — «Морской» и «Деревенский» спавнят реже и мельче партиями, чем «Обычный»:
| Набор | Интервал | Мобов за цикл | Радиус активации | Кап рядом |
|---|---|---|---|---|
| Дружелюбный | 15 с | 3 | 16 блоков | 20 |
| Обычный | 12 с | 3 | 16 блоков | 20 |
| Морской | 20 с | 3 | 16 блоков | 15 |
| Редкий | 18 с | 3 | 16 блоков | 15 |
| Адский | 18 с | 2 | 16 блоков | 15 |
| Деревенский | 20 с | 2 | 16 блоков | 15 |
Отдельный донат-инструмент — золотая кирка с зачарованным блеском (пятый уровень Эффективности, спрятан из тултипа флагом скрытых зачарований — чисто ради визуала) и меткой superspawners:kirka в PDC. Механика простая: один удар Киркой по супер-спавнеру — блок ломается, и на 100% выпадает предмет-спавнер его типа, забирай и ставь в другом месте. Сама Кирка после удара расходуется — стак уменьшается на 1, а если это была последняя в руке, рука пустеет. Выдаётся отдельной командой, парой к предметам-спавнерам, а не крафтится и не встречается в мире сама по себе.
Есть нюанс на грани редактирования конфига: если тип спавнера удалить из spawner-types, а спавнер этого типа всё ещё стоит в мире, он «засыпает» — но если его всё равно сломать Киркой, вернуть нечего (плагину неоткуда взять определение типа для нового предмета), и в этом случае Кирка НЕ расходуется — сообщение будет как при обычной ломке без инструмента. Практический вывод: не убирать тип из конфига, пока в мире остаются спавнеры этого типа, которые кто-то ещё планирует честно выломать.
Плагин не просто выдаёт мобов — он даёт рычаги для донат-лестницы. Шесть типов из коробки естественно делятся по риску и полезности: «Дружелюбный» и «Обычный» — безопасный стартовый набор для младших рангов (шерсть, яйца, порох, кости, паутина, никакой боёвки), «Морской», «Редкий», «Адский» и «Деревенский» — уровень постарше, где в каждой пачке есть шанс на трофей вроде тотема от Заклинателя или черепа Скелета-иссушителя. Редкий подшанс — не украшение, а инструмент удержания: игрок фармит спавнер не ради гарантированного дропа, а ради лотереи в каждом цикле, и это держит интерес к рангу дольше, чем разовая выдача сундука.
Кирка Индианы — отдельный рычаг: без неё спавнер намертво привязан к точке установки, с ней — переносной актив, который можно честно передать другому игроку или переставить при переезде базы, но только тем, кому Кирку выдали отдельной командой, — массово фармить их нельзя. PDC-метка вместо имени защищает саму механику: переименовать обычный блок в наковальне и выдать его за супер-спавнер не получится, плагин попросту не увидит метку. А /spawners reload позволяет докручивать баланс — веса, интервалы, капы — на живом сервере без даунтайма, если какой-то ранг оказался слишком сильным или слишком слабым.
Все операции — через один корень /spawners (алиасы /superspawners, /спавнеры), право одно на всё — superspawners.admin.
/spawners give hell Vitaliy — выдать игроку Vitaliy предмет «Адский спавнер» (первый аргумент — id типа, ключ из spawner-types в конфиге)/spawners give friendly Newbie — стартовый набор новичку/spawners kirka Vitaliy — выдать Кирку Индианы Джонса/spawners types (алиас list) — список всех типов из конфига прямо в чате: число мобов, интервал, размер пачки/spawners reload — перечитать config.yml целиком: типы, сообщения, настройки планировщика; саму лицензию при этом заново НЕ проверяет — только при старте плагинаНеизвестный id типа — команда сама покажет список доступных. Оффлайн-игрок как получатель — вежливый отказ в чате, а не ошибка в консоли. Табуляция подставляет id типов и ники онлайн-игроков динамически: новый тип из конфига сразу появляется в автодополнении, а без права superspawners.admin команда вообще не подсвечивается.
Важно: выдача предмета не проверяет свободное место в инвентаре получателя и не роняет предмет на землю при переполнении — если слотов не хватит, спавнер или Кирка просто исчезнут. Перед крупной выдачей инвентарь получателя стоит освободить.
Всё завязано на одно право — superspawners.admin, по умолчанию у операторов, выдаётся любым плагином управления правами. Оно закрывает разом всю команду /spawners: выдачу спавнеров, выдачу Кирки, список типов и reload — отдельных прав на каждое действие нет. Игрокам без доступа к /spawners права не нужны вовсе — они просто получают готовый предмет и ставят его, вся магия дальше держится на PDC-метке предмета, а не на правах того, кто его поставил.
tick-interval-ticks (по умолчанию 20 тиков = раз в секунду планировщик ПРОВЕРЯЕТ спавнеры; реальный ритм спавна каждого типа — его собственный interval-seconds), spawn-y-offset (на сколько блоков выше спавнера появляются мобы, по умолчанию 1), spawn-spread (разброс точки спавна по горизонтали в блоках, по умолчанию ±1; 0 — строго по центру блока).display-name и custom-model-data Кирки (по умолчанию 690010); номера под сами спавнеры уже заняты диапазоном 690001–690006, для нового типа нужен свой уникальный номер вне этого списка.display-name, custom-model-data, interval-seconds, count-per-cycle, activation-range, max-nearby (0 — без локального капа) и список mobs (type + weight). Неизвестное имя моба, немобное существо или вес ≤ 0 — предупреждение в лог и пропуск именно этого моба, остальной набор грузится как есть; если валидных мобов не осталось совсем, тип загрузится, но спавнить будет нечего.custom-model-data (например, 690007) и не выполнить /spawners reload — до этого момента это не седьмой набор, а просто шаблон в комментариях.enabled, key, url, grace-hours. При старте плагин шлёт ключ на сервер валидации; если сервер лицензий недоступен, есть запас в grace-hours (по умолчанию 24) на кэше последней успешной проверки, а вот явный отказ (ключ неверен, занят другим IP, отозван) отключает плагин сразу, без грейса. Для приватного сервера защита выключается одним enabled: false.Шесть наборов — от мирной фермы до тотема Заклинателя — держатся на одной идее: спавнер нельзя угнать яйцом, нельзя разобрать голыми руками и нельзя подделать переименованием. Забрать его можно только честно, Киркой Индианы, а донат-лестницу под него докручивают в конфиге без единого рестарта.