Гайд DeluxeMenus: первое меню за 10 минут

CloudDelight сегодня в 12:00 1 ответ 16
#1
Для тех, кто ставит DeluxeMenus впервые и хочет быстро получить рабочее меню. В итоге будет окно на три кнопки, которое открывается командой /menu.

Что нужно

  • DeluxeMenus и PlaceholderAPI: DeluxeMenus работает поверх него;
  • Vault и плагин экономики, если кнопки будут стоить денег.

Где живут меню

Меню можно описать прямо в config.yml, но удобнее держать каждое в своём файле. В plugins/DeluxeMenus/config.yml регистрируем меню в блоке gui_menus:
Код
gui_menus:
  main_menu:
    file: main_menu.yml
Сам файл кладём в plugins/DeluxeMenus/gui_menus/main_menu.yml.

Само меню

Код
menu_title: '&8Меню сервера'
open_command:
  - menu
  - m
size: 27
items:
  'filler':
    material: GRAY_STAINED_GLASS_PANE
    slots:
      - 0-10
      - 12
      - 14
      - 16-26
    display_name: ' '
  'spawn':
    material: COMPASS
    slot: 11
    display_name: '&aСпавн'
    lore:
      - '&7Телепорт на спавн'
    left_click_commands:
      - '[player] spawn'
      - '[close]'
  'profile':
    material: head-%player_name%
    slot: 13
    display_name: '&e%player_name%'
    lore:
      - '&7Баланс: &f%vault_eco_balance_formatted%'
      - '&7Онлайн: &f%server_online%'
  'bread':
    material: BREAD
    slot: 15
    display_name: '&6Хлеб x16'
    lore:
      - '&7Цена: 100 монет'
    left_click_requirement:
      requirements:
        money:
          type: has money
          amount: 100
      deny_commands:
        - '[message] &cНе хватает монет'
    left_click_commands:
      - '[takemoney] 100'
      - '[console] give %player_name% bread 16'
Что здесь что:
  • menu_title - заголовок окна, цвета через &;
  • open_command - команда открытия, одна строкой или несколько списком;
  • size - размер, кратен 9, максимум 54;
  • slot - номер ячейки, счёт с нуля слева направо и сверху вниз: верхний ряд 0-8, второй 9-17 и так далее;
  • slots - сразу несколько ячеек, можно диапазоном;
  • material - предмет как в игре, заглавными буквами: DIAMOND_SWORD, OAK_LOG. Голова игрока задаётся как head-ник;
  • left_click_requirement - условие клика. Если денег меньше 100, выполнятся deny_commands, а покупка не пройдёт.

Действия по клику

Каждая строка в списке команд начинается с действия в квадратных скобках:
Код
[player] spawn                         команда от имени игрока, без слеша
[console] give %player_name% bread 16  команда от консоли
[close]                                закрыть меню
[message] &aГотово                     сообщение игроку
[openguimenu] shop_menu                открыть другое меню из gui_menus
[takemoney] 100                        списать деньги через Vault
Кроме left_click_commands есть right_click_commands, shift_left_click_commands и click_commands, последний срабатывает на любой клик.

Кнопка только для своих

view_requirement прячет предмет, если условие не выполнено. Например, кнопка, которую видят только игроки группы vip из LuckPerms:
Код
  'vip_hat':
    material: GOLDEN_HELMET
    slot: 22
    display_name: '&6Шляпа из блока'
    view_requirement:
      requirements:
        is_vip:
          type: has permission
          permission: group.vip
    left_click_commands:
      - '[player] hat'
group.vip - право, которое LuckPerms автоматически даёт всем участникам группы vip. Если добавляете кнопку в меню выше, уберите слот 22 из заполнителя: вместо 16-26 укажите 16-21 и 23-26, иначе два предмета займут одну ячейку.

PlaceholderAPI

Плейсхолдеры вроде %player_name% подставляются, только когда установлены нужные расширения:
Код
/papi ecloud download Player
/papi ecloud download Server
/papi ecloud download Vault
/papi reload
Проверить конкретный плейсхолдер: /papi parse me %player_name%. Если команда вернула сам текст с процентами, расширения нет. Подробнее: PlaceholderAPI в справочнике.

Применить и проверить

После правок выполните /dm reload. Открыть меню себе: /menu, другому игроку: /dm open main_menu Nick. Если меню не открывается, смотрите консоль сразу после reload: DeluxeMenus пишет, в каком файле ошибка.

Частые причины:
  • табы вместо пробелов в YAML;
  • строки, начинающиеся с &, без кавычек. Для YAML это спецсимвол, файл не прочитается;
  • старые названия материалов из 1.12, вроде STAINED_GLASS_PANE:7;
  • файл меню не зарегистрирован в gui_menus в config.yml;
  • два предмета в одном слоте без priority.
Больше примеров: DeluxeMenus в справочнике.

Вопросы по теме — пишите ниже, ответим.
#2
Если совсем уж лень, есть сайты - билдеры для DM и некоторых других плагинов на меню)
deworld dev

Чтобы ответить, войдите или зарегистрируйтесь.

Регистрация — минута, без подтверждения почты.

Регистрация Вход