Плагин DeluxeMenus скачать
Плагины

DeluxeMenus

Плагин DeluxeMenus служит для создания всевозможных меню на сервере и обладает, наверное, самым мощным функционалом среди себе подобных, например таких, как Chest Commands и проч.

Вы сможете создавать неограниченное количество настраиваемых графических меню, открывающихся по заданной команде. Они могут отображать какую-то информацию (например статистику), либо выполнять набор персональных действий именно для того игрока, который открыл меню. Для этих целей в команде вызова меню используются дополнительные аргументы (например: /<ИМЯ МЕНЮ> <ИГРОК>).

Меню могут быть несколько раз вложены друг в друга. То есть можно настроить одно, основное, таким образом, чтобы из него вызывалось несколько подменю. Например, это удобно сделать для мини-игр — в главном меню, по клику на один из предметов, происходит переход в подменю мини-игр. А из того уже можно вызвать любую мини-игру из имеющихся.

Команды и разрешения

Команды

Вместо /dm можно использовать /deluxemenus, /deluxemenu, /dmenu
  • /dm — показывает информацию о плагине;
  • /dm open <МЕНЮ> — открывает заданное меню (требуется разрешение deluxemenus.open);
  • /dm open <МЕНЮ> <ИГРОК> — открывает заданное меню заданному игроку (требуется разрешение deluxemenus.open.others);
  • /dm open <МЕНЮ> -p:<ИГРОК> — открывает для вас заданное меню, но заполнители в нём будут обработаны, как у заданного игрока (требуется разрешение deluxemenus.placeholdersfor);
  • /dm list — показывает перечень загруженных меню (требуется разрешение deluxemenus.list);
  • /dm execute <ИГРОК> <ДЕЙСТВИЕ> — выполняет любое действие для игрока из доступных (игрок должен обладать статусом оператора);
  • /dm reload — перезагружает файлы плагина (требуется разрешение deluxemenus.reload);
  • /dm reload <МЕНЮ> — перезагружает заданное меню (требуется разрешение deluxemenus.reload).

Весь текст в командах между знаками «меньше» и «больше» ( <> ) является заполнителем или переменной. Заменяйте его на запрошенное значение, но уже без использования знаков «меньше» и «больше» ( <> ).

Разрешения

  • deluxemenus.openrequirement.bypass — игнорирует все требования для открытия меню;
  • deluxemenus.openrequirement.bypass.<МЕНЮ> — игнорирует все требования для открытия заданного меню;
  • deluxemenus.placeholdersfor.exempt — запрещает другим игрокам использовать вас в команде /dm open <МЕНЮ> -p:<ВЫ>.

Некоторые типы требований (requirements):

  • type: has money — проверка средств;
  • type: string equals — равенство строки;
  • type: string equals ignorecase — равенство строки без учёта регистра;
  • type: has permission — проверка права;
  • type: has item – проверка наличия предмета;
  • type:>=‘ — больше или равно;
  • type:<=‘ — меньше или равно;
  • type:=‘ — равно;
  • type:<‘ — меньше;
  • type:>‘ — больше;
  • type: javascript.

Требования не действуют для игроков со статусом оператора!

Возможные действия

  • [player] <КОМАНДА> — выполнить команду от имени игрока;
  • [console] <КОМАНДА> — выполнить команду из консоли;
  • [commandevent] <КОМАНДА> — выполнить незарегистрированную команду от имени игрока;
  • [message] <ТЕКСТ> — отправить сообщение игроку. В тексте можно использовать как заполнители, так и коды цвета и формата;
  • [broadcast] <ТЕКСТ> — отправить сообщение всем, кто в данный момент находится в сети, и в консоль. Можно в текст вставлять заполнители, коды цвета и формата;
  • [openguimenu] <ИМЯ МЕНЮ> — открыть заданное меню из созданных в DeluxeMenus;
  • [connect] <ИМЯ СЕРВЕРА> — подключить игрока к заданному серверу на том же BungeeCord;
  • [close] закрыть текущее открытое меню;
  • [json] <JSON-ТЕКСТ> — отправить игроку сообщение в формате json. Имя или селектор игрока. Подготовить текст JSON удобно на сайте minecraftjson.com;
  • [jsonbroadcast] <JSON-ТЕКСТ> — отправить сообщение в формате json всем, кто в данный момент находится в сети. Подготовить текст JSON удобно на сайте minecraftjson.com;
  • [refresh] — обновить настройки текущего меню;
  • [broadcastsound] <ИМЯ ЗВУКА> <ВЫСОТА> <ГРОМКОСТЬ> — транслировать звук всем игрокам на сервере;
  • [broadcastsoundworld] <ИМЯ ЗВУКА> <ВЫСОТА> <ГРОМКОСТЬ> — транслируйте звук для всех игроков в текущем мире;
  • [sound] <ИМЯ ЗВУКА> <ВЫСОТА> <ГРОМКОСТЬ> — воспроизведите звук для заданного игрока;
  • [takemoney] <СУММА> — забрать у игрока заданную сумму денег. Для этого действия требуется установленный плагин Vault;
  • [givemoney] <СУММА> — передать игроку заданную сумму денег. Для этого действия требуется установленный плагин Vault;
  • [takeexp] <ЧИСЛО>L — взять у игрока заданное количество уровней опыта или очков. Чтобы задать уровни, добавьте L в конце, в противном случае удалите его;
  • [giveexp] <ЧИСЛО>L — передать игроку заданное количество уровней опыта или очков. Чтобы задать уровни, добавьте L в конце, в противном случае удалите его;
  • [chat] <ТЕКСТ> — отправить сообщение в чате от имени игрока, для которого выполнено это действие.

Тэги действий

  • <delay=<ЗАДЕРЖКА>> — действие будет выполнено через указанное в тиках время (20 тиков = 1 секунда);
  • <chance=<ШАНС>> — задаётся шанс на выполнение действия (в процентах).

Эти тэги могут добавляться к любому действию. Например, '[message] <КАКОЙ-ТО ТЕКСТ><delay=20>' или '[message] Шанс получить это сообщение составляет 25%<chance=25.0>'.

Цвета

Для указания цвета RGB/Hex в DeluxeMenus на версиях 1.16+ используется формат: "& # aaFF00"

Заполнители

В DeluxeMenus есть один доступный заполнитель:
%deluxemenus_meta_<КЛЮЧ>_<ТИП ДАННЫХ>_<ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ>%

  • КЛЮЧ: ключ meta, который нужно проверить;
  • ТИП ДАННЫХ: может быть STRINGBOOLEANDOUBLELONG, или INTEGER;

Если данный ключ имеет другой тип данных, то произойдёт ошибка
  • ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ:  значение, возвращаемое, если ничего не найдено.

Примеры

Меню «Выбор сервера»

Простое меню выбора одного сервера из двух, которое для одного из них отображает два разных состояния: когда сервер находится в сети и когда он отключен.

Чтобы меню работало нормально, необходимо загрузить плагины Pinger и Server (необязательно), используя:

/papi ecloud download Pinger
/papi ecloud download Server
/papi reload

В этом примере есть два сервера на одном BungeeCord: Ванильный и Игры. Поначалу мы находимся на сервере Игры.

Для подключения игрока к серверу Ванильный согласно настройке параметра left_click_commands:,
по ЛКМ будут последовательно выполняться три действия:

  • [close]... — закрыть меню;
  • [message]... —  отправить сообщение о переходе на выбранный сервер;
  • [connect]... — подключить игрока к серверу.

Чтобы показать, сколько игроков в это время находится на сервере Ванильный, используется заполнитель %pinger_players_ <ip>: <port>%. Нужно помнить, что заполнители плагина Pinger имеют свой собственный интервал обновления. Чтобы его изменить, перейдите в config.yml плагина PlaceholderAPI и вставьте нужное значение в параметр check_interval: (по умолчанию установлено 30 секунд).

Но что, если нужный сервер сейчас отключен? В этом случае будет использоваться второе состояние с более низким приоритетом, которое будет отображаться, если значение view_requirement: первого состояния равно FALSE. И если сервер отключен, то будет показано второе состояние. Но нужно иметь в виду, что состояния не обновляются автоматически, если требования к просмотру изменились (с Offline на Online). Необходимо обновить меню действием [refresh], кликнув на нужный предмет.

Со вторым сервером всё проще. По клику просто отправляется сообщение о том, что мы уже находимся на сервере Игры. И дополнительно показывается текущее количество игроков на сервере с помощью заполнителя %server_online%.

Код меню:

# ---------------------------------------------------------------------- #
#              THIS MENU WAS MADE USING DELUXEMENUS v1.12.0              #
# ---------------------------------------------------------------------- #
#                                                                        #
# ПРИМЕЧАНИЕ: Код этого меню должен быть в отдельном yml-файле!          #
#             Добавьте код ниже в config.yml плагина DeluxeMenus и       #
#             перезагрузите плагин командой (/dm reload).                #
#                                                                        #
# gui_menus:                                                             #
#   serverselector:                                                      #
#     file: serverselector.yml                                           #
#                                                                        #
# После этого создайте файл serverselector.yml и вставьте в него         #
# уже код самого меню, который ниже. Перезагрузите плагин ещё раз!       #
# ---------------------------------------------------------------------- #
menu_title: '&9Сервер'
open_command: server
size: 9
update_interval: 1
items:
  'vanilla_server':
    material: GRASS
    slot: 2
    priority: 1
    update: true
    view_requirement:
      requirements:
        vanila_online:
          type: string equals ignorecase
          input: '%pinger_online_127.0.0.1:25565%'
          output: '&aOnline'
    display_name: '&7Ванильный'
    lore:
    - ''
    - '&7Онлайн: &a%pinger_players_127.0.0.1:25565%'
    - '&7Здесь: &bТолько ванильный!'
    - ''
    - '&fНажмите, чтобы присоединиться!'
    - ''
    left_click_commands:
    - '[close]'
    - '[message] &7Подключение к серверу &aВанильный&7...'
    - '[connect] vanilla'
    right_click_commands:
    - '[close]'
    - '[message] &7Подключение к серверу &aВанильный&7...'
    - '[connect] vanilla'
  'vanilla_offline':
    material: BARRIER
    slot: 4
    priority: 2
    update: true
    display_name: '&7Ванильный'
    lore:
    - ''
    - '&cЭтот сервер сейчас отключен'
    - '&cПожалуйста, свяжитесь с администратором.'
    - ''
    - '&fНажмите, чтобы обновить!'
    - ''
    left_click_commands:
    - '[refresh]'
    right_click_commands:
    - '[refresh]'
  'games_server':
    material: IRON_SWORD
    slot: 6
    update: true
    display_name: '&9Игры'
    lore:
    - ''
    - '&7Онлайн: %server_online%'
    - '&7Здесь: &bТолько лучшие мини-игры!'
    - ''
    - '&fВы здесь!'
    - ''
    left_click_commands:
    - '[message] &cВы уже находитесь на этом сервере!'
    - '[close]'
    right_click_commands:
    - '[message] &cВы уже находитесь на этом сервере!'
    - '[close]'
Меню «Супермаркет»

Пока в этом супермаркете, как пример, можно купить только Гранит, но по аналогии товары можно добавлять и добавлять.

Код меню:

menu_title: '&6Супермаркет'
open_command: shop
open_commands:
   - '[message] Перед Вами витрина супермаркета'
   - '[sound] NOTE_PLING'
open_requirement:
requirements:
   permission:
      type: has permission
      permission: inventory.shop
      deny_commands:
         - '[message] У вас нет разрешения ,inventory.shop, чтобы открыть это меню'
size: 54
items:
   'SlotName':
      material: STONE
      data: 1
      slot: 0
      display_name: '&7Гранит'
      lore:
         - '&7Купите за: &a80 монет'
         - '&7Продайте за &c40 монет'
      left_click_commands:
         - '[console] eco take %player_name% 80'
         - '[console] give %player_name% stone:1 64'
         - '[message] &6&lDeluxe&eMenu &7»&f 64 гранита Ваши.'
      left_click_requirement:
         requirements:
            Money:
               type: has money
               amount: 80.0
               deny_commands:
                  - '[close]'
                  - '[message] &6&lDeluxe&eMenu &7»&f У вас маловато средств для такой покупки.'
      right_click_commands:
         - '[console] eco give %player_name% 40'
         - '[console] clear %player_name% stone:1 64'
         - '[message] &6&lDeluxe&eMenu &7»&f Мы приобрели у Вас 64 гранита.'
      right_click_requirement:
         requirements:
            Item:
               type: string equals
               input: '%player_hasitem-mat:STONE-amt:64-data:1%'
               output: 'yes'
               deny_commands:
                  - '[close]'
                  - '[message] &6&lDeluxe&eMenu &7»&f У вас маловато гранита, чтобы им бездумно торговать.'
  • menu_title: — название меню;
  • open_command: — это команда, которой будет открываться меню;
  • open_commands: — действия, выполняемые во время открытия меню;
  • open_requirement: — требования, выполнение которых позволит игроку открыть данное меню. В примере требованием является наличие разрешения inventory.shop, но можно указывать, что и сколько угодно.
    • deny_commands: — сообщение, которое будет показано, если требование не выполнено;
  • size: — количество слотов в меню. В строке 9 слотов. Максимальный размер меню — 54;
  • items: — это начало фактического gui. Ниже указываются имена, типы и т. д.
    • SlotName': — условное имя задействованного слота;
      • material: — тип материала предмета в слоте. Можно писать имя или id элемента;
      • data: — модификации предмета. В примере, у гранита идентификатор 1:1, поэтому в материале можно установить либо STONE, либо 1, а в data: пишем 1;
      • slot: — это номер слота, в который вы хотите, куда элемент станет. Для первого слота используйте 0, для второго используйте 1 и т. д до 53;
      • Display_name: — это имя элемента. Вы можете использовать цвет в отображаемом имени, потому что он будет наклонным, если вы этого не сделаете;
      • lore: — описание предмета. Здесь можно использовать несколько строк;
      • left_click_commands: — команды, которые будут выполняться при клике левой кнопкой мыши по слоту. В примере:
        • мы забираем 80 монет у кликнувшего на слот игрока;
        • отдаем ему 64 гранита;
        • и выводим сообщение, что покупка прошла успешно;
      • left_click_requirement: — это требования, при соблюдении которого сработают команды при ЛКМ. В примере используется заполнитель Vault, чтобы проверить, есть ли у покупателя на балансе 80 монет или больше. Если монет не хватает, то меню закрывается и выводится сообщение, что средств недостаточно;
      • right_click_commands: — это команды, которые мы хотим выполнить, когда пользователь щёлкнет правой кнопкой мыши. В примере:
        • мы отдаём игроку 40 монет;
        • затем мы забираем 64 гранита из его инвентаря;
        • затем сообщаем об этом;
  • right_click_requirement: — проверка, есть ли у игрока 64 гранита для продажи. Это делается с помощью заполнителя %player_hasitem-mat:<ИМЯ МАТЕРИАЛА>-amt:<КОЛИЧЕСТВО>-data: <МОДИФИКАЦИЯ ПРЕДМЕТА>%. Проверяется, равно ли это значение TRUE, и если нет, меню закрывается без действий и игроку выводится сообщение, что у него нет достаточного количества гранита для продажи.

Обратите внимание!
Для правильной работы плагина должен быть установлен PlaceHolderAPI.
jar

DeluxeMenus_1.13.4-DEV-116.jar

Дата изменения: 12-07-2021
Размер: 2.65 MB
Скачиваний: 10269
Версия: 1.12—1.17.1
  • Казино на деньги
  • Новое предупреждение

    Закрыть