Плагин Fun BorderPlus [4.2]

Добавлено три плейсхолдера.
1725489502924


%borderplus_world_display_name_название мира% - выведет настраиваемое название мира из конфига.
%borderplus_world_current_size_название мира% - Выведет текущую границу мира.
%borderplus_world_max_radius_название мира% - Выведет максимальное количество блоков, на которое может быть расширена граница.
Закомментированы ключи второго мира.
В конфиг добавлен параметр для каждого мира name: "Название мира"
На деле это выглядит примерно вот так:
YAML:
settings:
  show_title: true
  manage_world: true
  worlds:
    world:
      gui: "gui.yml"
      max_radius: 5000
      name: "Мир выживания" # название которое выводится когда кто то расширяет мир
    flat_world:
      gui: "gui2.yml"
      max_radius: 5000
      name: "Плоский мир"
Таким образом вы можете кастомизировать название мира в сообщении которое выводится когда кто-то увеличивает границы мира.
Добавлена поддержка голов из плагина HeadDatabase.
Добавлена поддержка звука для каждого повышения.
Полностью изменён GUI
Теперь файл GUI выглядит вот так:
YAML:
menus:
  border_menu:
    title: '&4&lУвеличение границы мира'
    size: 27
    items:
      increase_diamond_20:
        required_material: DIAMOND
        cost: 0.0
        material: DIAMOND
        lore:
        - ''
        - '&7Потрать &b&l100 алмазов &7, чтобы'
        - '&7увеличить границу мира'
        - '&7на &b&l500 блоков'
        - ''
        - '&e&lЛКМ &7- расширить границу мира'
        - ''
        required_amount: 100
        sound: ENTITY_LIGHTNING_BOLT_THUNDER
        weight: 500
        economy: false
        slot: 10
        display_name: '&#7289DA &lАлмазное расширение'
      increase_gold_50:
        required_material: GOLD_INGOT
        cost: 0.0
        material: GOLD_INGOT
        lore:
        - ''
        - '&7Потрать &6&l50 золотых слитков &7, чтобы'
        - '&7увеличить границу мира'
        - '&7на &6&l500 блоков'
        - ''
        - '&e&lЛКМ &7- расширить границу мира'
        - ''
        required_amount: 50
        sound: ENTITY_PLAYER_LEVELUP
        weight: 500
        economy: false
        slot: 13
        display_name: '&#7289DA &lЗолотое расширение'
      increase_iron_100:
        required_material: IRON_INGOT
        cost: 0.0
        material: IRON_INGOT
        lore:
        - ''
        - '&7Потрать &f&l100 железных слитков &7, чтобы'
        - '&7увеличить границу мира'
        - '&7на &f&l100 блоков'
        - ''
        - '&e&lЛКМ &7- расширить границу мира'
        - ''
        required_amount: 100
        sound: ENTITY_EXPERIENCE_ORB_PICKUP
        weight: 500
        economy: false
        slot: 16
        display_name: '&f&lЖелезное расширение'
      increase_economy_1000:
        required_material: EMERALD
        cost: 1000.0
        material: EMERALD
        lore:
        - ''
        - '&7Потрать &61000 монет, чтобы'
        - '&7увеличить границу мира'
        - '&7на &a&l1000 блоков'
        - ''
        - '&e&lЛКМ &7- расширить границу мира'
        - ''
        required_amount: 1000
        sound: BLOCK_BEACON_POWER_SELECT
        weight: 1000
        economy: true
        slot: 22
        display_name: '&a&lИзумрудное расширение границы'


Обратите внимание что многие параметры изменены.
Если вы хотите указать голову из плагина HeadDatabase, то измените параметр:
material на hdb-<id головы>. Как в deluxemenus.
Пример:
material: hdb-4188
1725056921891


Технические детали:​

Если используется HeadDatabase в качестве голов в плагине. Плагин сначала дожидается загрузки всех голов плагина HeadDatabase, только потом инициализирует меню.
  • Вернул старое использование HEX цветов
    • Пример: &#7289DA
  • Теперь все HEX цвета должны заключаться в фигурные скобки.
    • Пример: {#7289DA}
  • Исправлена проблема, что когда используешь hex в названии предмета, предмет переставал работать. Спасибо @Den4ik2000
  • Разделён конфиг и сообщения на два файла.
Добавлена опция для каждого мира: max_radius, которая позволяет указать максимальный радиус границы мира. Теперь плагин предотвращает расширение границы мира за пределы этого радиуса, обеспечивая защиту от превышения установленных лимитов.

Нужно обновить конфигурацию
Для сообщений добавить:
YAML:
max_radius_reached: "§cГраница мира уже достигла максимального размера. Дополнительное расширение невозможно."

Для каждого мира добавить: max_radius: <значение>
Пример:
YAML:
  worlds:
    world:
      gui: "gui.yml"
      max_radius: 5000 #Дальше этого радиуса невозможно увеличить границу мира.
    flat_world:
      gui: "gui2.yml"
      max_radius: 5000

Теперь расчёт из GUI производится не по радиусу а по диаметру...
То есть вот это значение: command: borderplus 1000 world
Увеличит границу от центра на 500 блоков.
  • Оптимизация кода.
  • Исправление мелких ошибок.
  • Убрана команда /borderplus open и теперь используется только /borderplus open <название мира>
  • Добавлены логические сообщения об ошибках когда игрок вводит короткую команду.
  • Добавлена возможноcть перезагружать конфиг командой из консоли (borderplus reload)
  • Добавлен вывод ключа сообщения, если он не найден в конфиге.
  • Закомментирован второй мир по умолчанию в конфиге, чтобы не создавалось дополнительное gui. Чтобы вы привыкли к плагину.

  • Никаких изменений в базе данных
  • Никаких изменений в GUI
Теперь каждое GUI требует отдельное право для его открытия:
borderplus.open.<Название_Мира>
Пример: borderplus.open.flat_world даст доступ к команде: /borderplus open flat_world

Команда /borderplus open без указания мира пока работает только для администраторов. Так как она может вызывала и в мире хаба, или спавна, где расширения не нужны.
НЕОБХОДИМО ОБНОВИТЬ КОНФИГУРАЦИЮ И GUI!!!

Полностью переработана система GUI плагина.​

Теперь GUI создаётся автоматически при запуске плагина, считывая конфигурацию плагина на основании названия мира в конфиге и название файла под него если плагин не обнаружит его.
YAML:
  worlds:
    world: # название мира
      gui: "gui.yml" # название файла GUI под него.
Так как для каждого мира создаются отдельные GUI, то теперь можете открывать GUI отдельные командой: /borderplus open <НазваниеМираИз_конфига>
Пример: /borderplus open world

Внимание:
Если вы используете просто /borderplus open, то плагин откроет меню мира, в котором вы находитесь.

Переделана конфигурация плагина.​

YAML:
# ===============================
#       Настройки плагина       #
# ===============================
#
# Вы можете настроить отдельные GUI для каждого мира. Эти GUI будут открываться автоматически,
# если игрок находится в соответствующем мире, или при выполнении команды «/borderplus open название_мира».
#
# Примеры настройки:
#   - Укажите имя мира и файл GUI, который будет открываться для этого мира.
#   - Закомментируйте или удалите строки для неиспользуемых миров.
#

settings:
  # Показать тайтл всем игрокам, когда игрок преобретает разширение мира?
  #    true = показать
  #    false = не показывать
  show_title: true
  manage_world: true
  worlds:
    world:
      gui: "gui.yml"
    flat_world:
      gui: "gui2.yml"
#    world3:
#      gui: "gui3.yml"

# ============= Конец настроек плагина ================== #

# ===============================
#     Сообщения плагина         #
# ===============================
#
# Это просто закомментированное сообщение для конфига.
# Вы можете настроить его по своему вкусу и сделать так, чтобы он был более информативным и привлекательным.
# ===============================
messages:
  border_expanded: |
    &6&l============================================
    &e     🌟 &lГраницы мира расширены! 🌟
   
    &6  Игрок &e&l%player% &6расширил границу мира &e%borderplus_world_name%&6!
    &6               на &e%actual_amount% &6блоков!
   
    &e🔲 &6Новые границы мира:
    &e  Мин. координаты: &a[%minX%, %minZ%]
    &e  Макс. координаты: &a[%maxX%, %maxZ%]
   
    &6&l============================================
  insufficient_items: "&cУ тебя недостаточно %material% (%needed% шт.)!"
  insufficient_funds: " &cДенег нет, но вы держитесь. Нужно: %cost%."
  items_removed: "&cИз твоего инвентаря было изъято %amount_removed% предметов."
  money_removed: "&cС вашего счета было списано %amount_removed% монет."
  invalid_number: "&cНеверное число."
  usage: "&cИспользование: /borderplus <amount>"
  gui_item_not_found: "&cПредмет в меню не найден."
  reload_complete: "&aКонфигурация перезагружена."
  title_message: "&eРасширение границы мира"
  title_next: "&e%player% расширил границу мира на %actual_amount% блоков"
  title_sound: "ENTITY_PLAYER_LEVELUP"
  no_permission: " &cНету прав, сосите лапу"
  no_money: " &cДенег нет, но вы держитесь."
  loaded_guis: "§aЗагруженные GUI для миров:"
  world_gui_info: "§aМир: §e{world} §a| GUI: §e{gui}"
  gui_not_found: "§cGUI для этого мира не найден."
  gui_title_size: "Title: %title% | Size: %size%"
# ========================================
#         Консольные сообщения           #
# ========================================
#
# Здесь вы можете настроить текст сообщений, которые будут отображаться в консоли.
# Эти сообщения могут включать предупреждения, ошибки и другую важную информацию.
  gui_file_not_found: "Файл %guiFileName% для мира %worldName% не найден."
  gui_load_error: "Невозможно загрузить GUI для мира %worldName%. Имя мира или имя файла равно null."
  world_load_error: "Ошибка: Для мира %worldKey% не удалось загрузить имя или GUI."
  world_loading: "Загрузка мира: %worldName% с GUI: %guiName%"
  only_players: "&cЭту команду могут использовать только игроки."
  section_missing: "Секция 'menus.border_menu.items' отсутствует в %guiFileName%"
  material_not_found: "Материал не найден для ключа: %key%"
  gui_successfully_loaded: "GUI для мира: %worldName% успешно загружен в guiMap."
  world_name_null: "Имя мира для ключа %worldKey% равно null."
  gui_initialization_start: "Инициализация загрузки GUI для мира: %worldName%"
  world_folder_missing: "Папка мира %worldName% не найдена на сервере. Пожалуйста, настройте конфигурацию для этого мира, или удалите его в файле config.yml"
  gui_loading: "Загрузка GUI для мира: %worldName% с файлом: %guiFileName%"
# ============= Конец настроек сообщений ================== #

Добавлен автокомплит всех команд.​

Фиксы багов:​

  • Теперь меню автоматически закрывается когда происходит покупка тем самым предотвращая дополнительное взаимодействие с GUI.
  • Добавлено право: borderplus.change, которая позволяет игроку изменять границу мира через команду /borderplus <количество блоков расширения>.
ВерхНиз