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

Помогите Сделать уникальный ItemStack для hashcode

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    Migel077
    Грубо говоря я хочу использовать од ин предмет в качестве key в HashMap, однако один is возрващает одинаковый hashcode. Как мне сделать уникальным is? Разумно использовать NBTTagCompound?
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Какая конечная цель? Для чего ты хочешь хранить ItemStack в качестве ключа в HashMap? Какую геймплейную механику ты делаешь?
    Теоретически ты можешь добавлять каждому стаку

    Если ты собираешься хранить в стаке собственные кастомные данные, то используй Paper API: ItemStack#getPersistentDataContainer()
    Работает начиная с Paper 1.14.
    Если под более старые версии, то тут уже только костыли с NBTAPI/CraftBukkit/NMS
     
  3. alexandrage

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

    Баллы:
    173
    Астемстак правильно проверять через isSimilar, а не хешкоду.
     
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Расскажи это HashMap.
    Помимо этого, это не "не правильно". Зависит всё от задачи. Если требуется ещё и количество предметов сравнивать, то .equals() и .hashCode() делают своё дело корректно.
    Но, опять же, мы не знаем, что конкретно требуется ТСу
     

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