Вопрос DeluxeMenus - Меню с наградами за отыгранное время.

Ядро
Paper

On1maxxx

Пользователь
Сообщения
125
Решения
4
Плагин
DeluxeMenus
Ядро сервера
  1. Paper
Версия сервера
  1. 1.16.5
Память сервера ОЗУ
Больше 16Gb
Ссылка
https://www.spigotmc.org/resources/deluxemenus.11734/
Всем привет. Я начинаюсь создатель серверов. Я решил сделать на своём сервере меню для наград за отыгранное время. Я сделал так, чтобы 1-ая вариация иконки была при нехватке наигранного времени, иконка была красной, и там было написано что время ещё не отыграно. 2-ая вариация, это жёлтая иконка, которая обозначает, что игрок наиграл нужное время, но награды не забрал. А 3-ья вариация, это зелёная иконка. Она обозначает, что игрок забрал награду.
1-ая и 2-ая вариации иконки работают, а вот 3-ья не хочет... Я долго ломал голову, делал проверку view_requirements и через has permission, и через javascript, и через string equals, ничего не получается. Может я где-то ошибся, но зелёная иконка просто не появляется, и игрок просто бесконечно может забирать награду из жёлтой иконки... Я прошу вас помочь мне, и если проблема в том, что вариаций 3, а в идеале, чтобы было 2, попрошу вас переписать конфигурацию, если вам не сложно, и у вас есть время :).
Сама конфигурация:
YAML:
menu_title: '&0Бесплатные награды'
open_command:
- freecases
size: 45
items:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% < 5'
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% >= 5'
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
         type: 'string equals'
         input: "%luckperms_has_permission_reward1.claim%"
         output: "yes"
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'

Заранее спасибо :)
 
Решение
блин, я вообще не понимаю, почему не работает, единственное, что приходит на ум, это что плейсхолдеры нерабочие

кароче ладно, откатывай к исходному варианту, буду думать над ним
Объединено

а если так?



Код:
menu_title: '&0Бесплатные награды'
open_command:
- freecases
size: 45
items:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression...
type: javascript
где вы его вообще берёте!?

в документации вроде везде написано

Код:
          type: '>='
          input: '%ваш плейсхолдер%'
          output: 'значение'

кароче я думаю решение будет выглядеть так:

YAML:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
          type: '>='
          input: '%statistic_minutes_played%'
          output: '5'
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
          type: has permission
          permission: reward1.claim
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'

должно работать, если нет, напиши
 
Здравствуйте, спасибо что откликнулись на мою проблему. Но теперь, красная иконка вообще не исчезает, у меня наигранно 100+ минут, а иконка горит красная, хотя должна быть жёлтой.
 

Вложения

  • 1751445611304.png
    1751445611304.png
    31.4 KB · Просмотры: 10
Здравствуйте, спасибо что откликнулись на мою проблему. Но теперь, красная иконка вообще не исчезает, у меня наигранно 100+ минут, а иконка горит красная, хотя должна быть жёлтой.
странно, попробуй вернуть тайп: джаваскрипт

и не надо так официально, пожалуйста
 
type: javascript
где вы его вообще берёте!?

в документации вроде везде написано

Код:
          type: '>='
          input: '%ваш плейсхолдер%'
          output: 'значение'

кароче я думаю решение будет выглядеть так:

YAML:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
          type: '>='
          input: '%statistic_minutes_played%'
          output: '5'
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
          type: has permission
          permission: reward1.claim
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'

должно работать, если нет, напиши
может надо просто вернуть view_requirements для reward1_unavaible? и сделать, проверку, чтобы %statistic_minutes_played% < 5?
 
может надо просто вернуть view_requirements для reward1_unavaible? и сделать, проверку, чтобы %statistic_minutes_played% < 5?
вряд ли это поможет, тут же приорити всё решает


например, у предмета 0 приоритета, и он доступен изначально, потом игроку, например, становится доступен предмет с приоритетом 2, и он сразу же покажется, потому что, несмотря на то, что игроку доступны 2 предмета, он важнее
 
странно, попробуй вернуть тайп: джаваскрипт

и не надо так официально, пожалуйста
Вернул javascript, всё равно, первая иконка никуда не уходит
Объединено

вряд ли это поможет, тут же приорити всё решает


например, у предмета 0 приоритета, и он доступен изначально, потом игроку, например, становится доступен предмет с приоритетом 2, и он сразу же покажется, потому что, несмотря на то, что игроку доступны 2 предмета, он важнее
ну просто первую иконку не получается заменить
Объединено

Просто если у первой иконки не будет выполняться view_requirement, то она пропадёт, но тогда конфиг вернёться в первоначальный вид...
 
Последнее редактирование:
Вернул javascript, всё равно, первая иконка никуда не уходит
Объединено


ну просто первую иконку не получается заменить
Объединено

Просто если у первой иконки не будет выполняться view_requirement, то она пропадёт, но тогда конфиг вернёться в первоначальный вид...
блин, я вообще не понимаю, почему не работает, единственное, что приходит на ум, это что плейсхолдеры нерабочие

кароче ладно, откатывай к исходному варианту, буду думать над ним
Объединено

а если так?



Код:
menu_title: '&0Бесплатные награды'
open_command:
- freecases
size: 45
items:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% < 5'
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% >= 5'
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
          type: has permission
          permission: reward1.claim
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 
Последнее редактирование:
тут проблема с между 2-ой и 3-ей иконками. 1-ая и 2-ая работают нормально. А вот 3-ья не хочет перекрывать 2-ую. Вот в чем проблема. А плейсхолдеры рабочие, так как 1-ая и 2-ая работают штатно
 
блин, я вообще не понимаю, почему не работает, единственное, что приходит на ум, это что плейсхолдеры нерабочие

кароче ладно, откатывай к исходному варианту, буду думать над ним
Объединено

а если так?



Код:
menu_title: '&0Бесплатные награды'
open_command:
- freecases
size: 45
items:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% < 5'
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% >= 5'
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
          type: has permission
          permission: reward1.claim
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
если этот вариант не сработает попробуй этот, но нужно ещё группе дефолт выдать пермишн reward1.noclaim



Код:
menu_title: '&0Бесплатные награды'
open_command:
- freecases
size: 45
items:
 'reward1_unavaible':
   material: red_stained_glass_pane
   slot: 11
   priority: 0
   display_name: ' '
   lore:
     - ' &c▪ &fВы должны отыграть &c5 &fминут.'
     - ' &c▪ &fВаш прогресс: &c%statistic_minutes_played% &f/ &c5 &fминут'
     - ''
     - ' &c▪ &fНаграда:'
     - ' &c▪ &d50 Ⓔ'
     - ' &c▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% < 5'
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
 'reward1':
   material: yellow_stained_glass_pane
   slot: 11
   priority: 1
   display_name: ' '
   lore:
     - ' &e▪ &fВы уже отыграли &d5 &fминут.'
     - ' &e▪ &fНажмите чтобы получить награду.'
     - ''
     - ' &e▪ &fНаграда:'
     - ' &e▪ &d50 Ⓔ'
     - ' &e▪ &a1 Кейс с монетами'
     - ''
   view_requirement:
     requirements:
       time_check:
         type: javascript
         expression: '%statistic_minutes_played% >= 5'
       claim_check:
          type: has permission
          permission: reward1.noclaim
   left_click_commands:
    - '[console] lp user %player_name% permission set reward1.claim true'
        - '[console] lp user %player_name% permission set reward1.noclaim false'
    - '[message]'
    - '[message] &dТитулы  |  &fВы установили титул &e«Новичек»'
    - '[message]'
    - '[sound] ENTITY_PLAYER_LEVELUP'
    - '[close]'
    - '[refresh]'
 'reward1_claimed':
   material: lime_stained_glass_pane
   slot: 11
   priority: 2
   display_name: ' '
   lore:
     - ' &a▪ &fВы уже забрали эту награду'
     - ''
   view_requirement:
     requirements:
       title_check:
          type: has permission
          permission: reward1.claim
   left_click_commands:
    - '[sound] ENTITY_VILLAGER_NO'
    - '[refresh]'
Объединено

всё, больше я ничего не могу предложить
 
Последнее редактирование:
вау, вроде заработало)
Объединено

щас, я наделаю ещё таких менюшек, и если всё работает штатно, то я отмечу вас как решение)
для точной проверки попробуй зайти с твинка (если, конечно, сервер пиратский)
 
Последнее редактирование:
Назад
Сверху Снизу