Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите NBTTagCompound не хочет сохраняться в Entity

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

Статус темы:
Закрыта.
  1. Автор темы
    KanKaH

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

    Баллы:
    61
    Имя в Minecraft:
    KanKaH
    Стоит задача записать тег "energy" с каким-либо числовым значением.

    Попробовал сделать так:

    public static void saveEnergyDataToNBT(Entity entity, int energy) {
    net.minecraft.server.v1_11_R1.Entity nmsEntity = ((CraftEntity) entity).getHandle();

    NBTTagCompound nbttagcompound = new NBTTagCompound();
    nmsEntity.c(nbttagcompound);

    nbttagcompound.setInt("energy", 55555);

    ((EntityLiving) nmsEntity).a(nbttagcompound);

    }

    Но оно не сохраняет ничего, это понятно если получить NBT из entity еще раз, уже после сохранения.
    Так же попробовал решение, предложенное во втором комментарии тут https://bukkit.org/threads/entity-nbt-tags-manipulation.135199/, но мало того, что оно тоже не сохраняет, но кроме этого оно не смогло получить все данные.

    UPD. Как оказалось метод прекрасно работал, я мог изменять и добавлять ванильные теги, НО никакие кастомные теги в Entity не сохраняются, их можно хранить только в предметах.
     
    Последнее редактирование: 1 фев 2017
  2. Хостинг MineCraft
    <
  3. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    saveData();
     
  4. Автор темы
    KanKaH

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

    Баллы:
    61
    Имя в Minecraft:
    KanKaH
    Причём тут saveData() вообще? Это же только по отношению к игроку применимо, и действует совершенно иначе.
     
  5. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Доки почитай
     
  6. Автор темы
    KanKaH

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

    Баллы:
    61
    Имя в Minecraft:
    KanKaH
    Сразу и почитал. Оно тут никаким боком.

    void saveData()
    Saves the players current location, health, inventory, motion, and other information into the username.dat file, in the world/player folder
     
  7. XjCyan1de

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
  8. Mabus

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

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
  9. Автор темы
    KanKaH

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

    Баллы:
    61
    Имя в Minecraft:
    KanKaH
    Как оказалось метод прекрасно работал, я мог изменять и добавлять ванильные теги, НО никакие кастомные теги в Entity не сохраняются, их можно хранить только в предметах.
     
Статус темы:
Закрыта.

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