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

СливПлатные

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

  • HotaruVN
  • jesusleo
  • DD12
  • Sniff
  • goloday
  • NguyenDuong7249
  • AlexDota
  • Izouku
  • Nina
  • drixLrxd
  • leo12say
  • waki123123
  • egorin
  • MyGoogle666
  • Vlad Vide
  • kapysta6280
  • StepanPavuk
  • catnekhuy

Помощь Проверка на предмет с названием

  • Автор темыVORHAL
  • Дата начала
VORHAL
Всем привет, нужна подсказка. Я хочу сделать магазин с физической валютой: Аметисты, Я дал ему название "Монета Гильдии" через ItemsEdit. мне нужно, чтобы в DeluxeMenus проходила проверка на НАЗВАНИЕ предмета. Чтобы люди не смогли добыть обычный Аметист, со стандартным названием, и купить что-то в магазине. Может я использую не тот плагин, либо подскажите какой-нибудь плагин, чтобы можно было реализовать Физическую валюту из стандартных предметов, но с измененным названием
 
FBM
Для реализации физической валюты с измененным названием в Minecraft с использованием плагинов, таких как DeluxeMenus и ItemsEdit, вы можете использовать следующий подход:

1. ItemsEdit: Убедитесь, что вы создали новый предмет (Аметист) с уникальным названием, например, "Монета Гильдии".

2. DeluxeMenus: В конфигурации меню добавьте проверку на название предмета. Например:

YAML:
menu:
  name: "Магазин"
  items:
    shop_item:
      id: "AMETHYST" # ID стандартного аметиста
      name: "Монета Гильдии"
      lore:
        - "Используйте для покупок в магазине."
      conditions:
        - "has_item: {item: AMETHYST, name: 'Монета Гильдии'}" # Проверка на название
      actions:
        left_click:
          - "give: {item: DIAMOND, amount: 1}" # Пример действия

3. Использование плагинов: Если вы хотите более гибкое управление валютой, рассмотрите использование плагинов, таких как Vault вместе с Economy плагинами (например, EssentialsX или Gringotts), которые могут помочь вам управлять экономикой и валютой на сервере.

4. Дополнительные плагины: Также обратите внимание на плагины, которые позволяют создавать кастомные предметы и управлять их свойствами, такие как CustomItems или MythicMobs.

Убедитесь, что у вас правильно настроены все плагины и их зависимости.
 
E_NeLsOn
@VORHAL, GitHub - PlaceholderAPI/CheckItem-Expansion: This expansion allows checking if items are in the inventory of the target player

Я так проверяю NBT (как будто лучше, ибо название могут сменить в наковальне):
yaml:
    click_requirement:
      requirements:
        has_coins:
          type: 'string equals'
          input: '%checkitem_amt:5,nbtstrings:MMOITEMS_ITEM_ID=SPECIAL_COIN%'
          output: "yes"
          deny_commands:
            - '[message] &c%alocales_survival-shop_not-enough-money%'
 
VORHAL
@E_NeLsOn, Я вообще не понимаю, как с NBT работать и check item... У тебя MMOITEMS, у меня же плагин ItemEdit, я там сделал /serveritem save. Где мне взять его айди и так дале, вообще не могу найти информацию
 

Вложения

  • IMG_20241219_150332.jpg
    IMG_20241219_150332.jpg
    183,2 КБ · Просмотры: 4
E_NeLsOn
@VORHAL, держишь предмет в руке -> /data get entity твой_ник
В ответной информации можно глянуть, есть там NBT вообще или нет.

Для проверки по имени предмета (проверить возможности не было, но вроде правильно):
%checkitem_amt:1,nameequals:Монета Гильдии%
(amt:1 - количество)

Если всё же есть возможность, то я бы всё таки рекомендовал проверять по каким-то неизменяемым параметрам, допустим, тот-же CustomModelData как вариант (если используется). Но, если твой плагин может запретить переименование кастомного предмета, то, в целом, проблем не должно возникнуть.
 
VORHAL
@E_NeLsOn, смотри:
Код:
  'Монета Гильдии':
    material: DIAMOND
    display_name: '&b&lОбменять валюту' 
    lore:
    - '&7Нажмите, чтобы обменять монету на'
    - '&7один алмаз'
    slot: 15
    priority: 1
    click_requirement:
      requirements:
        type: javascript
        expression: '%checkitem_nameequals:<&6Монета Гильдии>\, mat:<AMETHYST_SHARD>\, amt:<1>'
    deny_commands:
      - '[message] &cУ вас нет &6Монеты Гильдии'
    left_click_commands:
      - '[console] clear %player_name% %checkitem_nameequals:<&6Монета Гильдии>\, mat:<AMETHYST_SHARD>\, amt:<1>'
      - '[console] give %player_name% diamond 1'
      - '[message] &aУспешно!'
При нажатии консоль выдает ошибку: Placeholder got blocked due to security concerns (%checkitem_...%)
 
VORHAL
@E_NeLsOn, поправил:
Код:
  'Монета Гильдии':
    material: DIAMOND
    display_name: '&b&lОбменять валюту' 
    lore:
    - '&7Нажмите, чтобы обменять монету на'
    - '&7один алмаз'
    slot: 15
    priority: 1
    click_requirement:
      requirements:
        type: javascript
        expression: '%checkitem_nameequals:&6Монета Гильдии,mat:AMETHYST_SHARD,amt:1'
    deny_commands:
      - '[message] &cУ вас нет &6Монеты Гильдии'
    left_click_commands:
      - '[console] clear %player_name% %checkitem_nameequals:&6Монета Гильдии,mat:AMETHYST_SHARD,amt:1'
      - '[console] give %player_name% diamond 1'
      - '[message] &aУспешно!'
Все равно не помогло
 
VORHAL
@E_NeLsOn, нашел проблему... CMILib блокировал
Код:
ExploitPatcher:
  Placeholders:
    blocked:
      # By default we are blocking PAPI %checkitem_...% placeholder to avoid potential serious issues with it
      # Only disable this if you have dedicated protection for it
      checkItem: false # вот это говно стояло true
 
VORHAL
Код:
  'Монета Гильдии':
    material: DIAMOND
    display_name: '&b&lОбменять валюту' 
    lore:
    - '&7Нажмите, чтобы обменять монету на'
    - '&7один алмаз'
    slot: 15
    priority: 1
    click_requirement:
      requirements:
        type: checkitem
        expression: '%checkitem_mat:STONE,amt:1'
    deny_commands:
      - '[message] &cУ вас нет &6Монеты Гильдии'
    left_click_commands:
      - '[console] clear %player_name% %checkitem_mat:STONE,amt:1'
      - '[console] give %player_name% diamond 1'
      - '[message] &aУспешно!'
Некорректное название материала выдает. Не определяется ни один предмет
 
E_NeLsOn
@VORHAL, Ты мог просто скопировать мой конфиг, заменив заполнитель на тот, что я скинул.
Не существует type: checkitem

Википедия DeluxeMenus (погляди раздел Has Item)
Я сделал все, что мог, и умываю руки.
 
Последнее редактирование:
ВерхНиз