Вопрос DeluxMenus Как сделать так чтобы при покупки суффикса менялся предмет в менюшке

Ядро
Paper

Ainer_

Пользователь
Сообщения
16
Плагин
DeluxMenus
Ядро сервера
  1. Paper
Версия сервера
  1. Другое
  2. 1.21
Ссылка
https://www.spigotmc.org/resources/deluxemenus.11734/
У меня есть меню, где можно приобрести суффикс за предмет. Хочу, чтобы после покупки отображался другой предмет в меню и чтобы писалось потом что предмет куплен уже возможность менять суффикс на другие купленные. Вот пример, который я пытался реализовать, но так и не понял, как это сделать
Код:
items:
  # Префикс "Новенький"
  'prefix_new':
    material: RED_DYE
    slot: 21
    display_name: " "
    lore:
      - " &7[Новенький] &f%player_name%"
      - ""
      - " &fСтоимость: &d1 Зачарованная Печенька"
      - ""
      - " &e• Нажмите, чтобы купить"
      - ""
    view_requirement:
      requirements:
        not_bought_new:
          type: has_meta
          key: bought_prefix_new
          value: "true"
          invert: true
    left_click_requirement:
      requirements:
        has_cookie:
          type: has item
          item: cookie
          amount: 1
          deny_commands:
            - '[message] &cУ вас нет Зачарованной Печеньки!'
    left_click_commands:
      - '[takeitem] cookie 1'
      - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
      - '[console] lp user %player_name% meta set bought_prefix_new true'   # ← флаг покупки
      - '[message] &a✔ Префикс &7[Новенький]&a успешно куплен!'
      - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
      - '[close]'


    # Когда уже куплен — зелёный краситель + возможность активировать
    update_items:
      - material: GREEN_DYE
        lore:
          - " &7[Новенький] &f%player_name%"
          - ""
          - " &aВы уже купили этот префикс!"
          - ""
          - " &e• Нажмите, чтобы активировать"
        view_requirement:
          requirements:
            bought_new:
              type: has_meta
              key: bought_prefix_new
              value: "true"
        left_click_commands:
          - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
          - '[message] &a✔ Вы выбрали префикс &7[Новенький]&a!'
          - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
 
Добавь где команды это:
Код:
- '[console] lp user %player_name% permission set tutyl.1'
И где requirements:
Код:
hasperm:
      type: has permission
      permission: 'tutyl.1'
я немного не понимаю, если не затрудняет скинь с изменным вариантом
 
Код:
items:
  # Префикс "Новенький"
  'prefix_new':
    material: RED_DYE
    slot: 21
    display_name: " "
    lore:
      - " &7[Новенький] &f%player_name%"
      - ""
      - " &fСтоимость: &d1 Зачарованная Печенька"
      - ""
      - " &e• Нажмите, чтобы купить"
      - ""
    view_requirement:
      requirements: 
       not_bought_new:
          type: has_meta
          key: bought_prefix_new
          value: "true"
          invert: true
    left_click_requirement:
      requirements:
        has_cookie:
          type: has item
          item: cookie
          amount: 1
          deny_commands:
            - '[message] &cУ вас нет Зачарованной Печеньки!'
    left_click_commands:
      - '[takeitem] cookie 1'
      - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
      - '[console] lp user %player_name% meta set bought_prefix_new true'   # ← флаг покупки
      - '[console] lp user %player_name% permission set newink.1'
      - '[message] &a✔ Префикс &7[Новенький]&a успешно куплен!'
      - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
      - '[close]'


    # Когда уже куплен — зелёный краситель + возможность активировать
    update_items:
      - material: GREEN_DYE
        lore:
          - " &7[Новенький] &f%player_name%"
          - ""
          - " &aВы уже купили этот префикс!"
          - ""
          - " &e• Нажмите, чтобы активировать"
        view_requirement:
          requirements:
            hasperm:
             type: has permission
             permission: 'newink.1'
            bought_new:
              type: has_meta
              key: bought_prefix_new
              value: "true"
        left_click_commands:
          - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
          - '[message] &a✔ Вы выбрали префикс &7[Новенький]&a!'
          - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
Объединено

Вроде так
 
Код:
items:
  # Префикс "Новенький"
  'prefix_new':
    material: RED_DYE
    slot: 21
    display_name: " "
    lore:
      - " &7[Новенький] &f%player_name%"
      - ""
      - " &fСтоимость: &d1 Зачарованная Печенька"
      - ""
      - " &e• Нажмите, чтобы купить"
      - ""
    view_requirement:
      requirements:
       not_bought_new:
          type: has_meta
          key: bought_prefix_new
          value: "true"
          invert: true
    left_click_requirement:
      requirements:
        has_cookie:
          type: has item
          item: cookie
          amount: 1
          deny_commands:
            - '[message] &cУ вас нет Зачарованной Печеньки!'
    left_click_commands:
      - '[takeitem] cookie 1'
      - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
      - '[console] lp user %player_name% meta set bought_prefix_new true'   # ← флаг покупки
      - '[console] lp user %player_name% permission set newink.1'
      - '[message] &a✔ Префикс &7[Новенький]&a успешно куплен!'
      - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
      - '[close]'


    # Когда уже куплен — зелёный краситель + возможность активировать
    update_items:
      - material: GREEN_DYE
        lore:
          - " &7[Новенький] &f%player_name%"
          - ""
          - " &aВы уже купили этот префикс!"
          - ""
          - " &e• Нажмите, чтобы активировать"
        view_requirement:
          requirements:
            hasperm:
             type: has permission
             permission: 'newink.1'
            bought_new:
              type: has_meta
              key: bought_prefix_new
              value: "true"
        left_click_commands:
          - '[console] lp user %player_name% meta setsuffix 100 &7[Новенький]&f'
          - '[message] &a✔ Вы выбрали префикс &7[Новенький]&a!'
          - '[sound] BLOCK_AMETHYST_BLOCK_CHIME volume=1 pitch=1'
Объединено

Вроде так
не работает почему-то, я использую версию 1.14.1 плагина вот ошибка которую выдает. А permissions и тд он выдает
Код:
[18:23:36 WARN]: [DeluxeMenus] Pitch given for sound action: pitch=1, is not a valid number!
[18:23:36 ERROR]: [DeluxeMenus] Pitch given for sound action: pitch=1, is not a valid number!
java.lang.NumberFormatException: For input string: "pitch=1"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054) ~[?:?]
        at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122) ~[?:?]
        at java.base/java.lang.Float.parseFloat(Float.java:556) ~[?:?]
        at DeluxeMenus-1.14.1-Release.jar/com.extendedclip.deluxemenus.action.ClickActionTask.run(ClickActionTask.java:395) ~[DeluxeMenus-1.14.1-Release.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1663) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1531) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1253) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
 
не работает почему-то, я использую версию 1.14.1 плагина вот ошибка которую выдает. А permissions и тд он выдает
Код:
[18:23:36 WARN]: [DeluxeMenus] Pitch given for sound action: pitch=1, is not a valid number!
[18:23:36 ERROR]: [DeluxeMenus] Pitch given for sound action: pitch=1, is not a valid number!
java.lang.NumberFormatException: For input string: "pitch=1"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054) ~[?:?]
        at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122) ~[?:?]
        at java.base/java.lang.Float.parseFloat(Float.java:556) ~[?:?]
        at DeluxeMenus-1.14.1-Release.jar/com.extendedclip.deluxemenus.action.ClickActionTask.run(ClickActionTask.java:395) ~[DeluxeMenus-1.14.1-Release.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1663) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1531) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1253) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310) ~[paper-1.21.8.jar:1.21.8-59-19156cd]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
я искал похожие темы и видел, как некоторые люди использовали 'priority'. Но я не знаю, как сделать так, чтобы приоритет менялся автоматически в зависимости от того, что купил игрок.
 
я искал похожие темы и видел, как некоторые люди использовали 'priority'. Но я не знаю, как сделать так, чтобы приоритет менялся автоматически в зависимости от того, что купил игрок.
Поставь Priority 1 на все
Объединено

Убери PITCH=1
 
Последнее редактирование:
я искал похожие темы и видел, как некоторые люди использовали 'priority'. Но я не знаю, как сделать так, чтобы приоритет менялся автоматически в зависимости от того, что купил игрок.

Ну с помощью плайсхолдеров можно.
Пример:

YAML:
title_check:
          type: '!string equals'
          input: '%luckperms_suffix%'
          output: '&7новичок'

type: «!string equals» — проверяет, если вход не соответствует выходу
type: «string equals» — проверяет, если вход соответствует выходу (с учётом регистра).

input: '%luckperms_suffix%' проверяет что выводит плайсхолед %luckperms_suffix% для игрока.
output: '&7новичок' Что должен/не должен выводить этот плайсхолдер.

Вот код предмета который выводится только если у игрока есть lp суффикс «&7новичок»:

YAML:
'free_title_1_selected':
    material: filled_map
    slot: 10
    priority: 2
    enchantments:
      - 'SILK_TOUCH;1'
    hide_enchantments: true
    display_name: ' '
    lore:
      - ' &d«новичок» '
      - ''
      - ' &fТип: &7Бесплатный '
      - ''
      - ' &e• Используется '
      - ''
    # Проверки на видимость этой иконки
    view_requirement:
      requirements:
        title_check:
          type: string equals
          input: '%luckperms_suffix%'
          output: '&7новичок'
    # Команды при клике ЛКМ
    left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'

Можешь в продакшене ещё добавить и другие предметы которые будут отображаться к примеру если у игрока нет какого суфикса и др.

Если надо, прикрепил уже готовое меню для титулов за время игры / деньги как пример.
 

Вложения

  • titles_menu.txt
    71.7 KB · Просмотры: 1
Последнее редактирование:
Ну с помощью плайсхолдеров можно.
Пример:

YAML:
title_check:
          type: '!string equals'
          input: '%luckperms_suffix%'
          output: '&7новичок'

type: «!string equals» — проверяет, если вход не соответствует выходу
type: «string equals» — проверяет, если вход соответствует выходу (с учётом регистра).

input: '%luckperms_suffix%' проверяет что выводит плайсхолед %luckperms_suffix% для игрока.
output: '&7новичок' Что должен/не должен выводить этот плайсхолдер.

Вот код предмета который выводится только если у игрока есть lp суффикс «&7новичок»:

YAML:
'free_title_1_selected':
    material: filled_map
    slot: 10
    priority: 2
    enchantments:
      - 'SILK_TOUCH;1'
    hide_enchantments: true
    display_name: ' '
    lore:
      - ' &d«новичок» '
      - ''
      - ' &fТип: &7Бесплатный '
      - ''
      - ' &e• Используется '
      - ''
    # Проверки на видимость этой иконки
    view_requirement:
      requirements:
        title_check:
          type: string equals
          input: '%luckperms_suffix%'
          output: '&7новичок'
    # Команды при клике ЛКМ
    left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'

Можешь в продакшене ещё добавить и другие предметы которые будут отображаться к примеру если у игрока нет какого суфикса и др.

Если надо, прикрепил уже готовое меню для титулов за время игры / деньги как пример.
ОГРОМНОЕ СПАСИБО! Сейчас хотя бы у меня есть шаблон как делать, благодарю!
 
ОГРОМНОЕ СПАСИБО! Сейчас хотя бы у меня есть шаблон как делать, благодарю!

Если проблема решена – нажмите на галочку (НЕ СТРЕЛКУ) под моим прошлым сообщением.
 
Назад
Сверху Снизу