1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Milki_way, 29 ноя 2023.

  1. Автор темы
    Milki_way

    Milki_way Активный участник Пользователь

    Баллы:
    76
    У меня есть 10 мечей.

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

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

    SPIGOT 1.20.1
     
  2. Sturm_PT

    Sturm_PT Активный участник Пользователь

    Баллы:
    76
    ItemMeta#getPersistanceDataContainer#(get/has/set)
     
  3. Автор темы
    Milki_way

    Milki_way Активный участник Пользователь

    Баллы:
    76
    Я могу сравнить тип данных PersistentDataContainer между собой и это будет корректным?
    PersistentDataContainer хранит в себе hash головы?
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Название не является уникальным. Атрибуты, тут смотря какие, чары и прочность тоже не уникальные. Все остальное можно использовать для проверки. Или можно повесить CustomModelData на кастомные предметы, и текстуру свою можно повесить и проверять по ней.
     
  5. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    itemStack1.equals(itemStack2) // С учётом количества
    itemStack1.isSimilar(itemStack2) // Без учёта количества

    Работает корректно
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    До первого переименования или зачарования, дальше проверка нафиг пошлет)
     
  7. Sturm_PT

    Sturm_PT Активный участник Пользователь

    Баллы:
    76
    Нет, в PersistentDataContainer (или в CustomModelData, как выше предложили) можно записать инфу
     
  8. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну так и надо, чтобы для разных предметов false возвращало, нет?
    Ну, если надо сравнивать невзирая на различные характеристики, то реально через PersistentDataContainer какой-нибудь кастомный айдишник задавать и всё.

    Не нужно сравнивать контейнеры друг с другом, нужно сравнивать конкретные значения друг с другом, которые ты задаёшь самостоятельно.

    А если нужно сравнивать абсолютно все характеристики предмета, то делай, как предложил выше:
     

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