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

Помогите Persistent Data Container

Статус
Закрыто для дальнейших ответов.

DestKoder

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
DestKoder
Помогите пожалуйста, чего я не понимаю? С чем это связана.

Есть код проверки итема на кастомность (Наличия моего NBT тега). Этот NBT тег 100% присутствует (Проверял через команду от cmi ки). Но почему то при проверке предмета, всегда возвращается false.

P.s. проверку на итем мету он 100% проходит.

Сам метод проверки:
Код:
public boolean isCustomItem(ItemStack item){
        ItemMeta meta = item.getItemMeta();

        if(meta == null) return false;

        PersistentDataContainer pdc = meta.getPersistentDataContainer();

        boolean b = pdc.has(CivilizationCraft.getNbtKeys().ITEM_KEY, PersistentDataType.STRING);

        System.out.println("Check result: " + b);

        return b;
    }

CivilizationCraft.getNbtKeys().ITEM_KEY получаю через new NamespacedKey(plugin, "itemid")


P.s. Так же если не сложно подскажите как правильно создать зачарование, чтобы его было реально выбить через чаровальню..
 
Последнее редактирование:
Помогите пожалуйста, чего я не понимаю? С чем это связана.

Есть код проверки итема на кастомность (Наличия моего NBT тега). Этот NBT тег 100% присутствует (Проверял через команду от cmi ки). Но почему то при проверке предмета, всегда возвращается false.

P.s. проверку на итем мету он 100% проходит.

Сам метод проверки:
Код:
public boolean isCustomItem(ItemStack item){
        ItemMeta meta = item.getItemMeta();

        if(meta == null) return false;

        PersistentDataContainer pdc = meta.getPersistentDataContainer();

        boolean b = pdc.has(CivilizationCraft.getNbtKeys().ITEM_KEY, PersistentDataType.STRING);

        System.out.println("Check result: " + b);

        return b;
    }

CivilizationCraft.getNbtKeys().ITEM_KEY получаю через new NamespacedKey(plugin, "itemid")


P.s. Так же если не сложно подскажите как правильно создать зачарование, чтобы его было реально выбить через чаровальню..
Покажи как дату записываешь
 
Покажи как дату записываешь
Код:
public CustomItem(NamespacedKey key, ItemStack item) {
        this.key = key;

        this.item = item;

        ItemMeta meta = item.getItemMeta();

        if(meta == null) {
            return;
        }

        PersistentDataContainer pdc = meta.getPersistentDataContainer();

        pdc.set(CivilizationCraft.getNbtKeys().ITEM_KEY, PersistentDataType.STRING, key.toString());

        item.setItemMeta(meta);
    }
 
Код:
public CustomItem(NamespacedKey key, ItemStack item) {
        this.key = key;

        this.item = item;

        ItemMeta meta = item.getItemMeta();

        if(meta == null) {
            return;
        }

        PersistentDataContainer pdc = meta.getPersistentDataContainer();

        pdc.set(CivilizationCraft.getNbtKeys().ITEM_KEY, PersistentDataType.STRING, key.toString());

        item.setItemMeta(meta);
    }
Может по пути где теряется?
 
Может по пути где теряется?
Я бы рассмотрел этот вариант, если бы не юзал нбт...

Я получил предмет с нбт тегом моии через крафт, убедился что тег есть, чекаю выдаёт false
 
В целом я нашёл проблему... Она была в том месте где я чекал на итемы...

Решения не прикреплю (Его нет). Но просто будьте внимательнее при работе с итемами.

Может по пути где теряется?
ты был прав
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх