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

СливПлатные

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

  • укнунр34
  • AdilDemon
  • Lololowka123
  • dayahotik
  • Stezziklive
  • SvortexHost
  • Sashadragon
  • f1uxqq
  • brandonTALENT
  • fcPlugins
  • nidedipai
  • idanyag91
  • crystalinth
  • warface2007man
  • YuniGoo
  • DenPlayStar
  • lazuritov
  • Yukio
  • bobobo
  • mrkreenze
  • Tazinakiy
  • inkognito338
  • neon_boy
  • Postal_08
  • brglebka
  • Люцик
  • jadgar363
  • nesinamore
  • szarkans
  • Greystiks
  • gavrik1233
  • avariuous
  • Bogdanua
  • OverwriteMC
  • Warshkilaka
  • _4iter0k_
  • Yarik222
  • TrueMan
  • He1ly03
  • c1oudy
  • dfd12
  • cumUsh3k
  • he1oN
  • unfix
  • typoypidaras12
  • MerOnaS
  • fonarbx
  • blad
  • sh1zaexe
  • Silwexx
  • Jarvis20015
  • Zernovsky
  • Annaoceana
  • Alex1337
  • forska
  • igrokyt
  • artakar
  • jimbik1
  • 0ce1ot_123
  • Тимур
  • qeasqurra
  • anhvuquang0512
  • RZ_
  • Etader
  • kittavit123
  • cryspins
  • I_CommandBlock
  • shadowstich
  • kolosiysss
  • _FaGeR76
  • Danon4ix
  • 7vahoo
  • verylapysik123
  • xst233
  • neiaz_
  • tjkgeg
  • Plate
  • nikter
  • dikdik
  • mаааааdss
  • takopain
  • капец
  • ZerthDev

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

  • Автор темы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 КБ · Просмотры: 8
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)
Я сделал все, что мог, и умываю руки.
 
Последнее редактирование:
ВерхНиз