DeluxeMenus WIKI  о том , как настроить этот плагин

DeluxeMenus WIKI о том , как настроить этот плагин

что-то вроде нажимаешь на серый краситель, вместо него становится зелёный краситель
Я до сих пор не понимаю для чего это может пригодиться. Но если так не хочется рассказывать конкретнее - держи способ. Делаешь серый и зеленый краситель, выдаешь зеленому приоритет (мол он должен изначально отображаться), вешаешь на него view_requirments на какое-нибудь право. Это право ты будешь выдавать при клике на серый краситель. Вот и получится, изначально будет пытаться отобразиться зеленый краситель, но т.к у игрока изначально не будет права из view_requirments'a - автоматически будет показываться второй приоритет, тобишь серый краситель. При клике на серый краситель ты выдашь право, которое позволить тебе удовлетворить view_requirments зеленого красителя, и т.к у него высший приоритет - отобразиться уже он. Чтобы сия изменение произошло в реал-тайме (без повторного открытия меню) - у нас есть тег update или refresh (забыл какой), который ты тоже запишешь в команды при клике на серый краситель.

И это будет работать так, как ты сказал. Но боюсь применение для этого никакого не найдется, или я с утра туплю... Скорее всего у тебя есть конкретная задача, тобишь краситель должен не просто смениться, а при каком-либо событии, но т.к я его не знаю - додумывай сам)
 
Я до сих пор не понимаю для чего это может пригодиться. Но если так не хочется рассказывать конкретнее - держи способ. Делаешь серый и зеленый краситель, выдаешь зеленому приоритет (мол он должен изначально отображаться), вешаешь на него view_requirments на какое-нибудь право. Это право ты будешь выдавать при клике на серый краситель. Вот и получится, изначально будет пытаться отобразиться зеленый краситель, но т.к у игрока изначально не будет права из view_requirments'a - автоматически будет показываться второй приоритет, тобишь серый краситель. При клике на серый краситель ты выдашь право, которое позволить тебе удовлетворить view_requirments зеленого красителя, и т.к у него высший приоритет - отобразиться уже он. Чтобы сия изменение произошло в реал-тайме (без повторного открытия меню) - у нас есть тег update или refresh (забыл какой), который ты тоже запишешь в команды при клике на серый краситель.

И это будет работать так, как ты сказал. Но боюсь применение для этого никакого не найдется, или я с утра туплю... Скорее всего у тебя есть конкретная задача, тобишь краситель должен не просто смениться, а при каком-либо событии, но т.к я его не знаю - додумывай сам)
нужно, чтобы при нажатии на серый краситель вводилась команда, к примеру pvpon, а на нажатии на зелёный краситель pvpoff. и вот мне нужно много таких переключателей, поэтому нужен универсальный конфиг, где мне потребуется лишь менять команду. я умею делать это через плейсхолдер, но на некоторые команды просто не существует плейсхолдера.
можешь, пожалуйста, помочь с этим?
 
нужно, чтобы при нажатии на серый краситель вводилась команда, к примеру pvpon, а на нажатии на зелёный краситель pvpoff. и вот мне нужно много таких переключателей, поэтому нужен универсальный конфиг, где мне потребуется лишь менять команду. я умею делать это через плейсхолдер, но на некоторые команды просто не существует плейсхолдера.
можешь, пожалуйста, помочь с этим?
Под твою задачу подойдет изложенный выше мой вариант. В твоем случае отталкиваться от переменной в виде права лучше всего.
 
Да я ж тебе и так всё расписал шаг за шагом, если хочешь, чтобы сделали за тебя - плати, всегда так было.
мне не нужно, чтобы за меня сделали. мне нужен пример, потому что я не понимаю как сделать то, что ты написал. что написать в type или куда написать вообще? как выдать право?
мне всего лишь нужен вот такой пример. это вот то, что я смог сделать через плейсхолдер, а для того, что я писал выше не существует плейсхолдеров, потому я хочу научиться как сделать это по-другому
view_requirement:
requirements:
permission:
type: has permission
permission: deluxemenus.players
available:
type: string equals ignorecase
input: '%essentials_is_teleport_enabled%'
output: 'yes'
 
мне не нужно, чтобы за меня сделали. мне нужен пример, потому что я не понимаю как сделать то, что ты написал. что написать в type или куда написать вообще? как выдать право?
мне всего лишь нужен вот такой пример. это вот то, что я смог сделать через плейсхолдер, а для того, что я писал выше не существует плейсхолдеров, потому я хочу научиться как сделать это по-другому
view_requirement:
requirements:
permission:
type: has permission
permission: deluxemenus.players
available:
type: string equals ignorecase
input: '%essentials_is_teleport_enabled%'
output: 'yes'
Ну я могу ещё раз попробовать тебе подробно расписать, что тебе нужно сделать. Если ты хочешь увидеть готовый универсальный пример бесплатно - это не ко мне. Сам принцип:
1. Создаешь два предмета - зеленый краситель и серый.
2. Задаешь стандартному предмету приоритет 2, а изменяемому 1. Например, если у тебя в меню изначально у всех будет стоять серый краситель - ты серому и поставишь 2 приоритет.
3. На краситель с приоритетом 1 ставишь проверку view_requirement на право (укажи тут любое, например, blablabla.pomogite)
4. Стандартному красителю (тобишь тому, у которого приоритет 2) задаешь при левом клике команду выдачи права, которое ты указал в п.3
5. Если ты хочешь, чтобы краситель изменился прямо в меню - добавь в том же клике тег refresh.
6. На предмет с приоритетом 1 установить команду, которая будет забирать право, которое ты выдал в п.3 и также установи refresh, это позволит нам менять данный краситель бесконечно, в реал тайме.

Разжевал как смог!
 
Ну я могу ещё раз попробовать тебе подробно расписать, что тебе нужно сделать. Если ты хочешь увидеть готовый универсальный пример бесплатно - это не ко мне. Сам принцип:
1. Создаешь два предмета - зеленый краситель и серый.
2. Задаешь стандартному предмету приоритет 2, а изменяемому 1. Например, если у тебя в меню изначально у всех будет стоять серый краситель - ты серому и поставишь 2 приоритет.
3. На краситель с приоритетом 1 ставишь проверку view_requirement на право (укажи тут любое, например, blablabla.pomogite)
4. Стандартному красителю (тобишь тому, у которого приоритет 2) задаешь при левом клике команду выдачи права, которое ты указал в п.3
5. Если ты хочешь, чтобы краситель изменился прямо в меню - добавь в том же клике тег refresh.
6. На предмет с приоритетом 1 установить команду, которая будет забирать право, которое ты выдал в п.3 и также установи refresh, это позволит нам менять данный краситель бесконечно, в реал тайме.

Разжевал как смог!

Бро, я попробовал как ты сказал, но походу я всё же что-то не так делаю. вот то, что я сделал. команды работают, но предметы сменяются после двух нажатий. т.е. серый краситель - один раз нажал, применилась команда по выдаче права, второй раз нажал сменился предмет, и тоже самое с зелёным красителем - один раз удалилось право, второй раз сменился предмет
Код:
'PrivateOFF':
    material: gray_dye
    slot: 20
    priority: 2
    update: true
    display_name: "&cОтключено"
    lore:
    - "&e▸ &7Нажмите, чтобы включить"
    left_click_commands:
    - "[player] is private"
    - "[console] lp user %player_name% permission set privat"
    - "[refresh]"
    right_click_commands:
    - "[player] is private"
    - "[console] lp user %player_name% permission set privat"
    - "[refresh]"
  'PrivateON':
    material: lime_dye
    slot: 20
    priority: 1
    update: true
    view_requirement:
      requirements:
        obnova:
          type: has permission
          permission: 'privat'
    display_name: "&aВключено"
    lore:
    - "&e▸ &7Нажмите, чтобы выключить"
    left_click_commands:
    - "[player] is public"
    - "[console] lp user %player_name% permission unset privat"
    - "[refresh]"
    right_click_commands:
    - "[player] is public"
    - "[console] lp user %player_name% permission unset privat"
    - "[refresh]"
 
Последнее редактирование:
  1. Как можно сделать проверку если есть это право, то не продолжать действие в deluxemenu? Пробовал указывать в типе !has permission, но при рестарте плагина пишет ошибку, что не может понять что за тип указан.
  2. А так-же, как сделать сразу две проверки в одном предмете?
 
YAML:
    view_requirement:
      requirements:
        permission:
          type: has permission
          permission: cmi.command.openbook
Авто объединение сообщений:

Требование прав на нажатие предмета
YAML:
  1:
    material: PAPER
    slot: 13
    display_name: '&d&lПаспорт гражданина сервера'
    lore:
    - '&8&m----------------------'
    - '&7'
    - '&7Купить &dПаспорт'
    - '&7Стоимость: &d6 изумрудов'
    - '&7'
    - '&8&m----------------------'
    - '&fНажмите, чтобы купить!'
    - '&8&m----------------------'
    hide_attributes: true
    hide_encaantments: true
    hide_effects: true
    hide_unbreakable: true
    priority: 2
    left_click_requirement: #для левого клика
      requirements:
        item1:
          type: has permission  #тип требования
          permission:: cmi.command.openbook  #право для требования
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения!'
    right_click_requirement:
      requirements:
        item1:
          type: has item
          material: EMERALD
          amount: 6
          deny_commands:
          - '[message] &8[&7&l!&8] &7У вас нет 6 изумрудов!'
    left_click_commands:
    - '[console] pex user %player_name% add cmi.command.openbook'
    - '[sound] BLOCK_NOTE_BLOCK_BELL'
    - '[refresh]'
    right_click_commands:
    - '[console] pex user %player_name% add cmi.command.openbook'
    - '[sound] BLOCK_NOTE_BLOCK_BELL'
    - '[refresh]'
Авто объединение сообщений:

А так-же, как сделать сразу две проверки в одном предмете?
YAML:
    left_click_requirement: #для левого клика
      requirements:
        item1: #название требования №1
          type: has permission  #тип требования №1
          permission:: cmi.command.1  #право для требования №1
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения №1!'
        item2: #название требования №2
          type: has permission  #тип требования №2
          permission:: cmi.command.2  #право для требования №2
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения №2!'
 
YAML:
    view_requirement:
      requirements:
        permission:
          type: has permission
          permission: cmi.command.openbook
Авто объединение сообщений:

Требование прав на нажатие предмета
YAML:
  1:
    material: PAPER
    slot: 13
    display_name: '&d&lПаспорт гражданина сервера'
    lore:
    - '&8&m----------------------'
    - '&7'
    - '&7Купить &dПаспорт'
    - '&7Стоимость: &d6 изумрудов'
    - '&7'
    - '&8&m----------------------'
    - '&fНажмите, чтобы купить!'
    - '&8&m----------------------'
    hide_attributes: true
    hide_encaantments: true
    hide_effects: true
    hide_unbreakable: true
    priority: 2
    left_click_requirement: #для левого клика
      requirements:
        item1:
          type: has permission  #тип требования
          permission:: cmi.command.openbook  #право для требования
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения!'
    right_click_requirement:
      requirements:
        item1:
          type: has item
          material: EMERALD
          amount: 6
          deny_commands:
          - '[message] &8[&7&l!&8] &7У вас нет 6 изумрудов!'
    left_click_commands:
    - '[console] pex user %player_name% add cmi.command.openbook'
    - '[sound] BLOCK_NOTE_BLOCK_BELL'
    - '[refresh]'
    right_click_commands:
    - '[console] pex user %player_name% add cmi.command.openbook'
    - '[sound] BLOCK_NOTE_BLOCK_BELL'
    - '[refresh]'
Авто объединение сообщений:


YAML:
    left_click_requirement: #для левого клика
      requirements:
        item1: #название требования №1
          type: has permission  #тип требования №1
          permission:: cmi.command.1  #право для требования №1
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения №1!'
        item2: #название требования №2
          type: has permission  #тип требования №2
          permission:: cmi.command.2  #право для требования №2
          deny_commands: #сообщение, если нет этого права
          - '[message] &8[&7&l!&8] &7У вас нет разрешения №2!'
Благодарю.
 
Последнее редактирование:
C помощью DeluxeMenus, можно ли создать меню скупщика, который будет скупать вещи, и его можно прокачивать, например - что бы перейти на 2 уровень, нужно продать 700 морковки 650 картошки и 900 пшеницы, и за это ты получаешься деньги и переходишь на 2 уровень, и так несколько уровней
Можно ли так сделать?
 
Ребята нужна помощь, уже какой день не могу дойти как сделать меню без эффекта закрытия?
'[player] namemenu'
открывает меню как от плеера, а другая команда как раз и созданная для этого
'[openguimenu]' namemenu' открывает следующее меню с таким же эффектом кратковременного исчезновения.

Как сделать переход между страницами плавный?
Чекал ютуберов англ. там не уделяют этому внимания, а один человек который всё таки показал как это делать, показал пример использования команды [openguimenu] но прикол в том, что у него также мерцало при переходе в другое меню, а потом он что-то сделал за кадром (писал, что лишь создал ещё 4 айтема, но это не так) после продолжения демонстрации меню у него оно стало резко плавно переключаться без эффекта [close], хотя у него в коде он кстати присутствовал. У меня же как не крути всегда один и тот же эффект мерцание (закрытие) меню и открытие следующего. HELP пожалуйста, уже всё облазил.
PaperSpigot 1.12.2 b1613
DeluxeMenus использую с PAPI

p.s также пробовал и [commandevent] парень на англ. спигот искал решение, и потом он отписался, что смог сделать это с помощью данной команды, но я же перепробовав всё уже просто сдаюсь. Решение может где-то близко, но я не знаю :(
Майнкрафтом занимаюсь вот 8 день за прошедшие 6 лет, уже много изучил чего 24/7 работаю сервер делаю, но такую простую вещь я не могу догнать.

left/right_click_commands:
- '[openguimenu] <название меню>'
 
Можно ли сделать, при нажатии на меню, был звук из майнкрафта?
 
Можно ли сделать, при нажатии на меню, был звук из майнкрафта?
YAML:
menu_title: '&6Магазин'
open_command: shop
open_commands:
- '[message] &eВы открыли Магазин сервера.'
- '[sound] BLOCK_WOODEN_DOOR_OPEN' #звук при открытии меню
 
Подскажите, у меня deny_commands не срабатывает (деньги не списываются, но сообщения и закрытия нету), что делать?
 
Разрешается выкладывание кода, файлов конфигураций, логов и т.д. только под BB-код CODE
Всё таки нет

menu_title: 'Магазин'
open_command: shop
size: 54
open_commands:
- "[sound] BLOCK_WOODEN_DOOR_OPEN"
items:
'cobblestone':
material: COBBLESTONE
data: 1
slot: 0
display_name: "&rБулыжник"
lore:
- "&7ЛКМ, чтобы купить (2 &6⛀&7)"
- "&7ПКМ, чтобы продать (1 &6⛀&7)"
- "&7ЛКМ + SHIFT, чтобы купить стак (128 &6⛀&7)"
- "&7ПКМ + SHIFT, чтобы продать стак (64 &6⛀&7)"
left_click_commands:
- "[console] eco take %player_name% 2"
- "[console] give %player_name% cobblestone 1"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Вы успешно приобрели 1 булыжник"
left_click_requirement:
requirements:
Money:
type: has money
amount: 2.0
deny_commands:
- "[close]"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&c Недостаточно средств!"
right_click_commands:
- "[console] eco give %player_name% 1"
- "[console] clear %player_name% cobblestone 1"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Успешно продано"
right_click_requirements:
requirements:
Item:
type: string equals
input: "%player_hasitem-mat:COBBLESTONE-amt:1%"
output: "yes"
deny_commands:
- "[close]"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Недостаточно предметов"
Авто объединение сообщений:

Всё таки нет

menu_title: 'Магазин'
open_command: shop
size: 54
open_commands:
- "[sound] BLOCK_WOODEN_DOOR_OPEN"
items:
'cobblestone':
material: COBBLESTONE
data: 1
slot: 0
display_name: "&rБулыжник"
lore:
- "&7ЛКМ, чтобы купить (2 &6⛀&7)"
- "&7ПКМ, чтобы продать (1 &6⛀&7)"
- "&7ЛКМ + SHIFT, чтобы купить стак (128 &6⛀&7)"
- "&7ПКМ + SHIFT, чтобы продать стак (64 &6⛀&7)"
left_click_commands:
- "[console] eco take %player_name% 2"
- "[console] give %player_name% cobblestone 1"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Вы успешно приобрели 1 булыжник"
left_click_requirement:
requirements:
Money:
type: has money
amount: 2.0
deny_commands:
- "[close]"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&c Недостаточно средств!"
right_click_commands:
- "[console] eco give %player_name% 1"
- "[console] clear %player_name% cobblestone 1"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Успешно продано"
right_click_requirements:
requirements:
Item:
type: string equals
input: "%player_hasitem-mat:COBBLESTONE-amt:1%"
output: "yes"
deny_commands:
- "[close]"
- "[message] &f[&6&lDeluxe&eMenus&f] &1>&2>&f Недостаточно предметов"
Заработало!
Нужно deny_commands сделать на уровне requirements
 
Последнее редактирование:
Назад
Сверху Снизу