- Для версий
- 1.21.✘
- Зависимости
- Towny, Vault
TownyBuilds
Аддон для плагина Towny (Minecraft 1.21.x), добавляющий городские здания через подкоманду /t builds.
Возможности
- Полностью настраиваемые здания в config.yml — можно добавлять, удалять и редактировать без правки кода.
- Поддержка нескольких уровней у одного здания.
- Стоимость: монеты из казны города + предметы из инвентаря мэра.
- Награды: бонус-чанки, права (permissions), эффекты зелий, ежечасные выплаты монет или предметов, любые команды консоли.
- Виртуальный склад города (/t builds inv) для накопления предметных наград.
- Готовый GUI меню зданий и команд для скриптовой интеграции с собственным меню.
- Права автоматически синхронизируются при выходе/входе гражданина из города.
- Эффекты обновляются каждые 30 секунд и работают только на онлайн-гражданах.
Установка
- Установите Towny 0.101.2.0 на сервер.
- Положите TownyBuilds-1.0.0.jar в папку plugins.
- Запустите сервер один раз, чтобы создались config.yml и towns.yml.
- Настройте plugins/TownyBuilds/config.yml под себя.
- Используйте /t builds reload для применения изменений без перезапуска.
Рекомендуется установить Vault для работы экономики и dynmap, если планируете использовать здание «Театр».
Команды
Все команды доступны как подкоманда Towny — /t builds ....
| Команда | Описание |
|---|---|
| /t builds | Открыть GUI меню зданий. |
| /t builds build <id> | Построить (или повысить уровень) указанное здание. |
| /t builds info <id> | Подробная информация о здании и стоимости следующего уровня. |
| /t builds list | Список всех ID зданий из конфигурации. |
| /t builds inv | Открыть склад города (предметы, накопленные от Ферм и других зданий). |
| /t builds reload | Перезагрузить config.yml (требует townybuilds.admin). |
Строить может только мэр города (или администратор с правом townybuilds.admin).
Права
| Право | По умолчанию | Описание |
|---|---|---|
| townybuilds.use | true | Доступ к /t builds. |
| townybuilds.admin | op | /t builds reload, обход проверки мэра. |
Стандартный набор зданий
| ID | Название | Уровни | Эффект |
|---|---|---|---|
| mayoria | Мэрия | 1 | +150 бонус-чанков |
| bank | Банк | 1–3 | 50 / 100 / 150 монет в час в казну |
| theater | Театр | 1 | Гражданам выдаются dynmap.hide.self и dynmap.show.self |
| landmark | Достопримечательность | 1 | +75 бонус-чанков |
| barracks | Казарма | 1–5 | Спешка II / + Ночное зрение / + Скорость II / + Подводное дыхание / + Сила II |
| farm | Ферма | 1–3 | 32 / 64 / 72 пшеницы в час на склад города |
Базовая стоимость постройки берется из конфига — каждый уровень требует монеты и 1 «прожаренный плод хоруса» (POPPED_CHORUS_FRUIT).
Настройка config.yml
Общие настройки
settings:hourly-task-interval: 3600 # Интервал ежечасных выплат в секундах
effect-refresh-interval: 30 # Как часто обновлять эффекты (сек)
effect-duration: 60 # Длительность каждой выдачи эффекта (сек)
town-inventory-rows: 6 # Размер склада города (1–6 рядов)
pay-from: TOWN # Откуда списываются деньги (резерв на будущее)
Сообщения
Секция messages содержит все тексты, которые показывает плагин. Поддерживается раскраска через & и плейсхолдеры:
- %building% — название здания.
- %level% — номер уровня.
- %amount% — числовое значение (деньги/предметы).
- %item% — название предмета.
Структура здания
Код:
buildings:
<id_здания>:
display-name: "&6Название"
icon: NETHER_STAR # Любой Material из Bukkit
description:
- "&7Описание строка 1"
- "&7Описание строка 2"
max-level: 3
levels:
1:
cost:
money: 1000
items:
- material: POPPED_CHORUS_FRUIT
amount: 1
bonus-chunks: 150 # (опционально) единоразово при постройке
permissions: # (опционально) перманентно гражданам
- "some.permission.node"
effects: # (опционально) обновляются каждые 30 сек
- type: HASTE
amplifier: 1 # 0 = I уровень, 1 = II, и т.д.
hourly: # (опционально) каждый час
- type: MONEY # MONEY или ITEM
amount: 50
- type: ITEM
material: WHEAT
amount: 32
commands: # (опционально) выполнить от консоли
- "give %mayor% diamond 5"
- "broadcast Город %town% построил %building%"Доступные блоки внутри уровня
| Поле | Назначение |
|---|---|
| cost.money | Монеты, списываемые с казны города. |
| cost.items | Список предметов из инвентаря мэра. |
| bonus-chunks | Единоразовая добавка бонус-чанков городу. |
| permissions | Список прав, выдаваемых всем гражданам, пока они в городе. |
| effects | Список эффектов зелий (тип + amplifier). Применяется к онлайн-гражданам в городе. |
| hourly | Список ежечасных наград (MONEY или ITEM). Предметы идут на склад города. |
| commands | Произвольные команды от лица консоли. Плейсхолдеры: %town%, %mayor%, %building%, %level%. |
Названия эффектов
Используйте имена ванильных эффектов в нижнем регистре или верхнем: speed, haste, strength, jump_boost, regeneration, fire_resistance, water_breathing, invisibility, night_vision, resistance, slow_falling, dolphins_grace, conduit_power, luck, hero_of_the_village и т.д. amplifier: 0 соответствует «уровню I», 1 — «уровню II», и т.п.
Как добавить новое здание
- Откройте plugins/TownyBuilds/config.yml.
- В секцию buildings добавьте новую запись по образцу выше.
- Выполните на сервере /t builds reload.
- Здание сразу появится в /t builds и в /t builds list.
Никаких правок кода не требуется.
Хранение данных
- Данные городов хранятся в plugins/TownyBuilds/towns.yml.
- Ключ — UUID города из Towny.
- Хранится текущий уровень каждого здания и содержимое склада города.
- Сохранение происходит автоматически при постройке, закрытии склада и при выключении сервера.
Замечания
- Если игрок покидает город, права и эффекты, выданные от зданий, у него пропадают автоматически.
- При удалении города (/t delete) все его постройки и склад очищаются.
- Если в конфиге указан несуществующий Material или эффект — плагин выведет предупреждение в консоль, но загрузится корректно (это здание/уровень будет пропущено).
- Все деньги списываются и зачисляются через стандартный экономический API Towny — никакого Vault напрямую плагин не использует.