Помогите Не видит нбт

  • Автор темы Автор темы reZero
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

reZero

Активный участник
Пользователь
Баллы
76
Только сейчас заметил один интересный трабл.
При спавне предмета в сундуке, вешаю на него 7 тегов. Когда беру предмет в руку, на нем действительно написано upload_2020-3-6_18-41-32.png

Но когда мне требуется в коде проверять, есть ли на нем один из этих тегов, метод всегда возвращает мне false, хотя по сути, этот тег у предмета есть
PHP:
  public static boolean hasKey(ItemStack itemStack, String key) {
        net.minecraft.server.v1_12_R1.ItemStack nbtStack = CraftItemStack.asNMSCopy(itemStack);
        NBTTagCompound nbtTag = nbtStack.hasTag() ? nbtStack.getTag() : new NBTTagCompound();
        return nbtTag.hasKey(key);
    }

    public static void addNBTValue(ItemStack itemStack, String key, String value) {
        net.minecraft.server.v1_12_R1.ItemStack nbtStack = CraftItemStack.asNMSCopy(itemStack);
        NBTTagCompound nbtTag = nbtStack.hasTag() ? nbtStack.getTag() : new NBTTagCompound();
        nbtTag.setString(key, value);
        nbtStack.setTag(nbtTag);
        itemStack.setItemMeta(CraftItemStack.asBukkitCopy(nbtStack).getItemMeta());
    }
    public static String getValue(ItemStack itemStack, String key) {
        if(hasKey(itemStack, key)) {
            net.minecraft.server.v1_12_R1.ItemStack nbtStack = CraftItemStack.asNMSCopy(itemStack);
            NBTTagCompound nbtTag = nbtStack.hasTag() ? nbtStack.getTag() : new NBTTagCompound();
            return nbtTag.getString(key);
        }
        return null;
    }

Я так подозреваю, что при каждом вызове hasKey почему-то создается новый NBTTagCompound, то есть, старого на нем как бы нет, но он должен быть. Что за дела?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх