Плагин Механика TownyBuilds [1.0.0]

TownyBuilds
Краткое описание:
Аддон для плагина Towny добавляющий городские здания
9
59
Для версий
  1. 1.21.✘
Зависимости
Towny, Vault

TownyBuilds​


Аддон для плагина Towny (Minecraft 1.21.x), добавляющий городские здания через подкоманду /t builds.





Возможности​


  • Полностью настраиваемые здания в config.yml — можно добавлять, удалять и редактировать без правки кода.
  • Поддержка нескольких уровней у одного здания.
  • Стоимость: монеты из казны города + предметы из инвентаря мэра.
  • Награды: бонус-чанки, права (permissions), эффекты зелий, ежечасные выплаты монет или предметов, любые команды консоли.
  • Виртуальный склад города (/t builds inv) для накопления предметных наград.
  • Готовый GUI меню зданий и команд для скриптовой интеграции с собственным меню.
  • Права автоматически синхронизируются при выходе/входе гражданина из города.
  • Эффекты обновляются каждые 30 секунд и работают только на онлайн-гражданах.



Установка​


  1. Установите Towny 0.101.2.0 на сервер.
  2. Положите TownyBuilds-1.0.0.jar в папку plugins.
  3. Запустите сервер один раз, чтобы создались config.yml и towns.yml.
  4. Настройте plugins/TownyBuilds/config.yml под себя.
  5. Используйте /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.usetrueДоступ к /t builds.
townybuilds.adminop/t builds reload, обход проверки мэра.



Стандартный набор зданий​


IDНазваниеУровниЭффект
mayoriaМэрия1+150 бонус-чанков
bankБанк1–350 / 100 / 150 монет в час в казну
theaterТеатр1Гражданам выдаются dynmap.hide.self и dynmap.show.self
landmarkДостопримечательность1+75 бонус-чанков
barracksКазарма1–5Спешка II / + Ночное зрение / + Скорость II / + Подводное дыхание / + Сила II
farmФерма1–332 / 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», и т.п.




Как добавить новое здание​


  1. Откройте plugins/TownyBuilds/config.yml.
  2. В секцию buildings добавьте новую запись по образцу выше.
  3. Выполните на сервере /t builds reload.
  4. Здание сразу появится в /t builds и в /t builds list.

Никаких правок кода не требуется.




Хранение данных​


  • Данные городов хранятся в plugins/TownyBuilds/towns.yml.
  • Ключ — UUID города из Towny.
  • Хранится текущий уровень каждого здания и содержимое склада города.
  • Сохранение происходит автоматически при постройке, закрытии склада и при выключении сервера.



Замечания​


  • Если игрок покидает город, права и эффекты, выданные от зданий, у него пропадают автоматически.
  • При удалении города (/t delete) все его постройки и склад очищаются.
  • Если в конфиге указан несуществующий Material или эффект — плагин выведет предупреждение в консоль, но загрузится корректно (это здание/уровень будет пропущено).
  • Все деньги списываются и зачисляются через стандартный экономический API Towny — никакого Vault напрямую плагин не использует.

Автор

Boriq
ВерхНиз