Сборки серверов

СливПлатные

Сейчас онлайн

  • HapiXLAPI
  • Nina
  • NotPlayer
  • troyss
  • TunOri
  • papyza
  • 1XXGGHD1
  • DD12
  • LilThor
  • solothx
  • csznb
  • MyGoogle666
  • ox1de
  • VinPlays
  • kapysta6280
  • jesusleo
  • Izouku
  • HotaruVN
  • ghieldbeef
  • Burizado
  • scom_1209yt
  • TonyBombony

Инструкция Как сделать систему доступа в DeluxeMenu? "Хочу что бы там было заблокировано! Или разблокировано!"

Привет! Если вы задались таким вопросом, как сделать проверку на доступность - это тема для вас!
В данной теме, я хочу вам рассказать как можно сделать такое меню:

1. Требования - Эти плагины обязательно к установке, иначе вы не сможете сделать задуманного.
  • PlaceholderAPI - Самый нужный плагин, на всех серверах! С помощью него проверяются и выводятся все значения.
  • DeluxeMenu - Плагин с помощью которого мы и будем создавать меню!
  • LuckPerms - На момент написания руководства, самый удобный менеджер прав!

Почему именно эти плагины?
  • Поскольку именно с помощью них было написано меню,
  • Конечно вы можете использовать другие но, придётся переделывать код меню.

2. Подготовка - Действия после установки плагинов.
  • Перезапуск сервера - Необходимо перезапустить сервер после установки плагинов на сервер. (Если он был включён)
  • Подготовка библиотек - Т.К раннее мы установили PlaceholderAPI, для его использования нужно установить библиотеки.
    Для этого, нужно написать команду /papi ecloud download LuckPerms - После этого установится библиотека менеджера прав.
    И нужно будет перезагрузить плагин через команду /papi reload
  • Подготовить меню - Для данного пункта нужно будет зайти в папку сервера и пройти по такому пути: ВашСервер\plugins\DeluxeMenus\
    После чего вам нужно будет открыть файл config.yml (Не беспокойтесь насчёт расширения, откроется спокойно через блокнот)
    И добавить новую строку:
    config:
    gui_menus:
      test:
        file: test.yml
    После нужно будет зайти в папку gui_menus в этом же плагине.
    И добавить новый текстовой документ test.txt Потом переименовать его в test.yml

3. Создание - Получаем наше меню!
  • Создание меню - Теперь нам нужно создать наше интерактивное меню. Для этого я специально подготовил файл, в котором всё есть.
    Для его установки, открываем раннее созданный нами test.yml, и вставляем следующий код:
    test.yml:
    # ---------------------------------------------------------------------- #
    # Для функционированния данного меню, закиньте его в папку с плагином.   #
    # После чего добавьте его в config.yml плагина DeluxeMenus               #
    #                                                                        #
    # gui_menus:                                                             #
    #   test:                                                                #
    #     file: test.yml                                                     #
    #                                                                        #
    # И потом перезагрузите плагин (/dm reload)                              #
    # ---------------------------------------------------------------------- #
    menu_title: '&ctest for perm' # Название меню
    open_command: test # Команда для открытия
    size: 9
    items:
      vip:
        material: black_glazed_terracotta # Отображаемый блок
        slot: 3 # Слот в котором будет предмет (ОБЯЗАТЕЛЬНО ТАКОЙ ЖЕ КАК В ГРУППЕ has_vip)
        priority: 1 # Приоритет показа блока (ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ МЕНЬШЕ ЧЕМ has_vip)
        display_name: '&cЗаблокировано!' # Название которое видит игрок
        left_click_requirement:
          requirements:
            no_rank: # Данная строка проверяет, есть ли право у игрока с названием "title1". Если оно есть, воспроизводятся эти действия:
              type: string equals ignorecase
              input: '%luckperms_check_permission_title1%'
              output: 'no'
              deny_commands:
              - '[message]&aУ вас есть право на использование х1!'
              - '[close]'
            no_rank2: # Данная строка проверяет, есть ли право у игрока с названием "title2". Если оно есть, воспроизводятся эти действия:
              input: '%luckperms_check_permission_title2%'
              output: 'no'
              deny_commands:
              - '[message]&aУ вас есть право на использование х2!'
              - '[close]'
        view_requirement:
          requirements:
            no_rank: # Данная строка проверяет, есть ли право у игрока с названием "title1". Если оно есть, оно покажет предмет hav_vip
              input: '%luckperms_check_permission_title1%'
              output: 'no'
            no_rank2: # Данная строка проверяет, есть ли право у игрока с названием "title2". Если оно есть, оно покажет предмет hav_vip
              input: '%luckperms_check_permission_title2%'
              output: 'no'
    
      has_vip: # Предмет отображаемый при имении title1 / title2
        material: blue_glazed_terracotta # Отображаемый блок
        slot: 3 # Слот в котором будет предмет (ОБЯЗАТЕЛЬНО ТАКОЙ ЖЕ КАК В ГРУППЕ vip)
        priority: 2 # Приоритет показа блока (ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ МЕНЬШЕ ЧЕМ has_vip)
        display_name: '&aРазблокировано!' # Название которое видит игрок
    Теперь, сохраняем изменения, и перезагружаем плагин. (/dm reload)
  • Настройка прав - Т.К Раннее мы установили LuckPerms для менеджера прав, нужно подстроить его под наше меню.
    По моему мнению будет удобнее выдавать группу у которой есть права. Поэтому рассмотрим этот способ!
    Для начала создадим группу, это будет легко сделать через команду: "/lp creategroup test"
    test - Это наше название группы, которое мы будем использовать далее.
    Теперь надо выдать право, в моём примере для работы меню было использовано право title1
    Поэтому, выдадим это право группе для проверки: "/lp group test permission set title1"

4. ᴇxᴘᴇʀɪᴍᴇɴᴛs - Завершающий этап, тестирование работы!
  • Выдача группы - Т.К Раннее мы выдали права для группы, теперь надо выдать саму группу игроку.
    Для этого можно использовать команду: "/lp user ник parent add test".
  • Проверка меню - Теперь можем проверить, изменился ли текст. Раз уж мы сразу выдали право, у нас должно написать Разблокировано! (Что бы открыть меню /test)
    Если у вас на данный момент не работает меню, или написано Заблокировано!, будьте любезны удостовериться что вы следовали согласно гайду.
    Если у вас написано разблокировано, значит всё работает!
  • Удаление группы - Когда вы проверили на разблокированный текст, надо ещё проверить на заблокированный.
    Для этого нам нужно убрать группу с себя, делается это с помощью команды: "/lp user ник parent remove test"
    После откройте меню ещё раз через команду /test,и увидьте что данный предмет Заблокирован!

Вывод:
Если меню полностью работоспособное, то я рад за вас!
В дальнейшей настройке меню вам поможет документация плагина.
Которая к случаю, удобно расположилась тут гиперссылкой! DeluxeMenu
Если же в итоге, ваше меню не заработало. Проверьте выполнение всех пунктов выше, если же всё равно не работает...
Будьте добры сообщить мне в данной инструкции, я попытаюсь вам помочь / исправить свою ошибку!

В остальном, если вам была полезна данная инструкция/гайд, можете оставить мне поощрение в виде Лайка
И написать свой отзыв / пожелание по данному гайду.
На этом всё, всем удачного дня!

 
Последнее редактирование:
Felleus Development
Надо было начать топик с актуальности, не понятно с самого начала, а зачем вообще игроку это меню)
 
Dancebunny98
  • Dancebunny98
  • 🔥 𝒬𝓊𝒾𝒸𝓀𝐹𝒾𝓇𝑒 𝒞𝑜𝓇𝓅.
  • 53
@Felleus, Банально, если у человека не пройден квест, или что-то разрабатывается и вот-вот будет открыто для глаз игроков, можно сделать подобную "заглушку" Но автор чутка усложнил
 
Fazich
не работает скопировал весь конфиг сделал всё в точь в точь как написано 0 нечего во всех случаях пишет заблокировано
 
Радмир
@Fazich, под оператором в этот момент? Если да - то работать как надо не будет, там все на правах основано.
 
Радмир
@Fazich, тогда не знаю.. У меня в моих ресурсах есть еще более усложненные примеры на DM, связанные с доступностью.
 
Радмир
@Fazich, нет, я разбирался самостоятельно, потом придумывал систему квестов, основанную на подобных механизмах только DM
 
Fazich
@Радмир, у тебя есть получается система где надо иметь право чтобы он был действие было разблакировано?
 
Радмир
@Fazich, да, условие такое есть. Одно право, несколько прав сразу, хотя бы несколько из всех прав..
как минимум, есть 2 способа по условиям
 
Радмир
ну или используя прямую проверку в DM методом
type: has permission

permission: TEXT

или используя плейсхолдер

type: string equals
input: '%luckperms_check_permission_drobilka_power_stone%'
output: 'Да'
 
Радмир
@Fazich, эммм.. .я так глянул мельком его код..

для
has_vip: #
priority: нужно было < 1 поставить.
Проверка ведь как идет - начиная с наименьшего.
а у него 2 стоит.
 
Fazich
@Радмир, я до этого попробовал этот вариант, но нечего там наоборот пишет что разблакировано всегда, так что у него везде походу ошибки где-то
 
Радмир
@Fazich, я пришлю кусок кода с проверкой подобного типа, который писал для себя.. разберешься я думаю, чтобы по аналогии сделать себе

код:
  Поселянин_да:
    amount: 1
    material: 'iron_helmet'
    display_name: '&a&l"Поселянин"'
    priority: 1
    lore:
    - '&6╔════════════════════════════'
    - '&6║ &fДанный ранг для игроков, выполнившие '
    - '&6║ &fтребования по времени игры на сервере, развитию '
    - '&6║ &fи выполняющие правила сервера.'
    - '&6╠════════════════════════════'
    - '&6║ &#20B2AAЭй, &#7B68EE%player_name%&#20B2AA, да ты уже Поселянин!'
    - '&6║ &#20B2AAСоблюдай правила сервера, чтобы оставаться им,'
    - '&6║ &#20B2AAи пусть Велес благоволит тебе!'
    - '&6╠════════════════════════════'
    - '&6║ &fРепутационный ранг с дополнительными возможностями.'
    - '&6╚════════════════════════════'
    slot: 10
    view_requirement:
      requirements:
        Требование:
          type: string equals
          input: '%luckperms_in_group_player1%'
          output: 'Да'
  Поселянин[I]может[/I]получить:
    amount: 1
    material: 'iron_helmet'
    display_name: '&a&l"Поселянин"'
    priority: 2
    lore:
    - '&6╔════════════════════════════'
    - '&6║ &fДанный ранг для игроков, выполнившие '
    - '&6║ &fтребования по времени игры на сервере, развитию '
    - '&6║ &fи выполняющие правила сервера.'
    - '&6╠════════════════════════════'
    - '&6║ &fПодробности перехода в этот ранг '
    - '&6║ &fна сайте &9&nserver-veles.ru'
    - '&6╠════════════════════════════'
    - '&6║ &#98FB98Ты можешь перейти в этот ранг самостоятельно,'
    - '&6║ &#98FB98но тебе нужно выполнить 2 условия:'
    - '&6║ '
    - '&6║ &#006400✔ &#808000 наиграть на сервере не менее 72 часов'
    - '&6║ &#808000 Сейчас твоё время составляет - &#006400%statistic_hours_played% &#808000 час.'
    - '&6║ &#006400✔ &#808000 Суммарный уровень навыков развития '
    - '&6║ &#808000 должен быть не менее 50 уровней.'
    - '&6║ &#808000 твоя текущая сумма уровней составляет - &#006400%aureliumskills_power%&#808000.'
    - '&6╠════════════════════════════'
    - '&6║ &fРепутационный ранг с дополнительными возможностями.'
    - '&6╚════════════════════════════'
    slot: 10
    view_requirement:
      requirements:
        Требование_1:
          type: javascript
          expression: '%statistic_hours_played% < 72'
  Поселянин[I]может[/I]получить_2:
    amount: 1
    material: 'iron_helmet'
    display_name: '&a&l"Поселянин"'
    priority: 3
    lore:
    - '&6╔════════════════════════════'
    - '&6║ &fДанный ранг для игроков, выполнившие '
    - '&6║ &fтребования по времени игры на сервере, развитию '
    - '&6║ &fи выполняющие правила сервера.'
    - '&6╠════════════════════════════'
    - '&6║ &fПодробности перехода в этот ранг '
    - '&6║ &fна сайте &9&nserver-veles.ru'
    - '&6╠════════════════════════════'
    - '&6║ &#98FB98Ты можешь перейти в этот ранг самостоятельно,'
    - '&6║ &#98FB98но тебе нужно выполнить 2 условия:'
    - '&6║ '
    - '&6║ &#006400✔ &#808000 наиграть на сервере не менее 72 часов'
    - '&6║ &#808000 Сейчас твоё время составляет - &#006400%statistic_hours_played% &#808000 час.'
    - '&6║ &#006400✔ &#808000 Суммарный уровень навыков развития '
    - '&6║ &#808000 должен быть не менее 50 уровней.'
    - '&6║ &#808000 твоя текущая сумма уровней составляет - &#006400%aureliumskills_power%&#808000.'
    - '&6╠════════════════════════════'
    - '&6║ &fРепутационный ранг с дополнительными возможностями.'
    - '&6╚════════════════════════════'
    slot: 10
    view_requirement:
      requirements:
        Требование_2:
          type: javascript
          expression: '%aureliumskills_power% < 50'
  Поселянин[I]может[/I]стать:
    amount: 1
    material: 'iron_helmet'
    display_name: '&a&l"Поселянин"'
    priority: 4
    lore:
    - '&6╔════════════════════════════'
    - '&6║ &fДанный ранг для игроков, выполнившие '
    - '&6║ &fтребования по времени игры на сервере, развитию '
    - '&6║ &fи выполняющие правила сервера.'
    - '&6╠════════════════════════════'
    - '&6║ &#FF0000Поздравляю! &#00FA9AТы выполнил все требования на ранг'
    - '&6║ &#00FA9Aи можешь повысить его до &a"Поселянин".'
    - '&6║ &#00FA9A Нажми на это меню для получения.'
    - '&6║ &#FA8072Запомни только одно, %player_name%, этот ранг может'
    - '&6║ &#FA8072быть снят Стражами за нарушение правил сервера.'
    - '&6╠════════════════════════════'
    - '&6║ &fРепутационный ранг с дополнительными возможностями.'
    - '&6╚════════════════════════════'
    slot: 10
    left_click_commands:
    - '[console] lp user %player_name% parent add player1'
    - '[refresh]'
    - '[broadcastsound] entity.firework_rocket.launch 1 1'
    - '[sound] entity.firework_rocket.launch 1 1'
    - '[broadcast] '
    - '[broadcast] &f[&9&lСервер &c&lВелес&f]&#DC143CПоздравляем &a%player_name% &#DC143Cc получением ранга &aПоселянин!'
    - '[broadcast] '
    right_click_commands:
    - '[console] lp user %player_name% parent add player1'
    - '[refresh]'
    - '[broadcastsound] entity.firework_rocket.launch 1 1'
    - '[broadcast] '
    - '[broadcast] &f[&9&lСервер &c&lВелес&f]&#DC143CПоздравляем &a%player_name% &#DC143Cc получением ранга &aПоселянин!'
    - '[broadcast] '
 
ВерхНиз