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

Помогите Установить nbt теги поставленному блоку

Тема в разделе "Разработка плагинов для новичков", создана пользователем reZero, 11 июл 2019.

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

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

    Баллы:
    76
    Есть у меня itemstack (это блок слизи).
    Я вешаю ему nbt теги, ставлю цветное имя, лор и т.п.
    Когда я этот блок ставлю, а потом ломаю, обнаруживаю, что у него отсутствуют теги, лор и название, которые устанавливал я сам.

    Пытался обрабатывать ивент установки блока и ставить блоку nbt теги с itemstack'a, но это кидает мне npe...
    Помогите плиз, как можно установить блоку эти nbt, которые были на itemstack'e, или как можно сохранить это все дело, чтоб при установке все эти параметры оставались.
    PHP:
    ItemStack itemstack event.getItemInHand();
    CraftWorld craftWorld = (CraftWorld)block.getWorld();
    TileEntity tileEntity craftWorld.getTileEntityAt(block.getX(), block.getY(), block.getZ());
    tileEntity.save(NBTHandler.getTag(itemstack));
    tileEntity.update();
     
  2. Mr Hosting
  3. imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Потому что блок слизи не TileEntity. Храни теги в какой-нибудь БД, думаю.
     
  4. alexandrage

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

    Баллы:
    173
    Ору в голос.
     
  5. Автор темы
    reZero

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

    Баллы:
    76
    Допустим, буду я хранить эти теги в бд, но а каким образом я могу установить все эти теги на уже установленный блок? Или я чего-то не понимаю?
     
  6. Автор темы
    reZero

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

    Баллы:
    76
    Да да, очень здорово, орать в голос с чьего-то незнания. Раз такой умный, взял бы и поправил
     
  7. alexandrage

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

    Баллы:
    173
    У простых блоков есть только NamespacedKey и больше ничего.
     
  8. imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    При разрушении блока передавай все теги из БД в ItemStack. Ещё следует учесть передвижение блока поршнем.
     
  9. Автор темы
    reZero

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

    Баллы:
    76
    а что может поменяться от передвижения блока поршнем?
     
  10. imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    А как ты собрался хранить блоки в БД? Все равно потребуется сохранять их координаты. При передвижении блока поршнем нужно и в БД "двигать" блок. Ну, либо же ломать блок, как это происходит в шалкерами.
     

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