Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Сравнение предметов на соответствие

Milki_way

Активный участник
Пользователь
Баллы
76
У меня есть 10 мечей.

У них отличие в атрибутах, описании, и названии.

Как проверить соответствует ли меч 1 мечу 2, есть ли какой то hash где хранятся все характеристики предмета, либо может предмету что то присваивать, какую то уникальную характеристику которая будет отвечать за определение предмета?

SPIGOT 1.20.1
 
У меня есть 10 мечей.

У них отличие в атрибутах, описании, и названии.

Как проверить соответствует ли меч 1 мечу 2, есть ли какой то hash где хранятся все характеристики предмета, либо может предмету что то присваивать, какую то уникальную характеристику которая будет отвечать за определение предмета?

SPIGOT 1.20.1
ItemMeta#getPersistanceDataContainer#(get/has/set)
 
Название не является уникальным. Атрибуты, тут смотря какие, чары и прочность тоже не уникальные. Все остальное можно использовать для проверки. Или можно повесить CustomModelData на кастомные предметы, и текстуру свою можно повесить и проверять по ней.
 
itemStack1.equals(itemStack2) // С учётом количества
itemStack1.isSimilar(itemStack2) // Без учёта количества

Работает корректно
 
Я могу сравнить тип данных PersistentDataContainer между собой и это будет корректным?
PersistentDataContainer хранит в себе hash головы?
Нет, в PersistentDataContainer (или в CustomModelData, как выше предложили) можно записать инфу
предмету что то присваивать, какую то уникальную характеристику которая будет отвечать за определение предмета
 
До первого переименования или зачарования, дальше проверка нафиг пошлет)
Ну так и надо, чтобы для разных предметов false возвращало, нет?
Ну, если надо сравнивать невзирая на различные характеристики, то реально через PersistentDataContainer какой-нибудь кастомный айдишник задавать и всё.

Я могу сравнить тип данных PersistentDataContainer между собой и это будет корректным?
PersistentDataContainer хранит в себе hash головы?
Не нужно сравнивать контейнеры друг с другом, нужно сравнивать конкретные значения друг с другом, которые ты задаёшь самостоятельно.

А если нужно сравнивать абсолютно все характеристики предмета, то делай, как предложил выше:
itemStack1.equals(itemStack2) // С учётом количества
itemStack1.isSimilar(itemStack2) // Без учёта количества
 

Поделиться этой страницей

Назад
Верх