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

Помогите Как вообще работать с PowerNBT ?

Тема в разделе "[Архив] Помощь", создана пользователем Vedroyder, 16 мар 2014.

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

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

    Баллы:
    103
    Имя в Minecraft:
    Vedroyder
    Как вообще работать с PowerNBT ?
    Интересует его работа с shoppingcart (выдавать переименованные итемы, итемы с нестандартными лорами, чанты).
    Из того что написано на dev.bukkit ничего не понятно. вроде бы читаю, а вроде бы и не читаю.
    Короче - как вообще с этими тэгами работать в игре и в бд?
    Если говорить о shopping cart , то что надо вписывать в поле extra в таблице?
    Есть русскоязычные человеческие гайды по этому плагину?
     
  2. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    На самом деле сложно пользоваться этим плагином без знаний как устроен формат данных NBT
    и почти вся литература только на английском, поэтому придется довольствоваться тем, что есть: http://minecraft.gamepedia.com/Chunk_format

    Попробую сформулировать очень коротко:
    Некоторые предметы могут иметь дополнительные свойства: нестандартное имя, описание, енчанты, цвет фейерверков, цвет брони, текст в книгах и т.д. - все эти данные хранятся в формате NBT.
    Изменить первую строчку Lore с помощью PowerNBT можно таким способом:
    /nbt item display.Lore[0] = "текст"
    удалить тег Lore:
    /nbt item display.Lore remove
    Аналогично редактируются любые свойства.

    Про shoppingcart:
    Судя по описанию, он совместим с PowerNBT
    Чтобы сохранять нестандартные теги в базу, они разработали конвертер JSON -> NBT
    Кстати, придется еще знакомиться с таким форматом, как JSON
    Подробнее - тут. Не ленитесь читать.
     
    NaPsTeR, Hephest и Vedroyder нравится это.
  3. Автор темы
    Vedroyder

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

    Баллы:
    103
    Имя в Minecraft:
    Vedroyder
    примного благодарен, я уже думал что тема затеряется в анналах рб.
     
  4. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
    Прочитал документацию, часть понял, часть нет. Допустим у нас есть меч(зачарован через кодировку чар ShoppingCart). При выдаче его без extra зачарование на месте, но если добавить какой либо тег({display:{Name:{"Swordself"}}), то зачарка слетает. Пробовал делать цветные надписи при помощи {display:{Name:{"&6Swordself"}}, но этот символ не считается за цвет и только добавляется к названию. Я пробовал зачаровывать через nbt-extra({ench:[{id:16,lvl:3}]}), но у меня крашится клиент. Также пытался восстановить зачарования через {StoredEchantments:[{id:16,lvl:3}]}, но и эти попытки не увенчались успехом(зачарок просто не было).
    Для справок: Версия майна 1.5.2
    Поэтому у меня 2 вопроса:

    1. Возможно подписать меч c помощь Name, добавить к нему описание Lore без потери зачарований через extra?
    2. Как изменить цвет у надписей Lore и Name через тот же extra?
     
  5. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    У тебя не указаны типы значений NBT-тегов: byte, shotr, int и т.п.
     
    NaPsTeR нравится это.
  6. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
    Для примера не подскажешь, как правильно указывать надо?
     
  7. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    достаточно всего одной опечатки, чтобы клиент версии < 1.7 вылетел с ошибкой.
    Приведи команды целиком.
     
    NaPsTeR нравится это.
  8. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
    {display:{Name:"Swordself",Lore:["Any Lore"]},tag:{StoredEnchantments:[{id:16,lvl:3}]}} - С этой командой все ок кроме зачарований.
    {display:{Name:"Name of the Item",Lore:["Another Lore of the Item"]},ench:[{id:16,lvl:3}]} - Тут уже серьезней, ибо после наведения курсора следует мгновенный краш клиенты(ошибка видна ниже)
    Код:
    java.lang.ClassCastException: net.minecraft.nbt.NBTTagInt cannot be cast to net.minecraft.nbt.NBTTagShort
    at net.minecraft.nbt.NBTTagCompound.func_74765_d(SourceFile:116)
    at net.minecraft.item.ItemStack.func_82840_a(ItemStack.java:650)
    at net.minecraft.client.gui.inventory.GuiContainer.func_74184_a(GuiContainer.java:222)
    at net.minecraft.client.gui.inventory.GuiContainer.func_73863_a(GuiContainer.java:198)
    at net.minecraft.client.renderer.InventoryEffectRenderer.func_73863_a(SourceFile:31)
    at net.minecraft.client.gui.inventory.GuiInventory.func_73863_a(SourceFile:48)
    at net.minecraft.client.renderer.EntityRenderer.func_78480_b(SourceFile:1023)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:871)
    at net.minecraft.client.Minecraft.run(Minecraft.java:760)
    at java.lang.Thread.run(Thread.java:722)
    --- END ERROR REPORT c7efde6a ----------
     
  9. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    тип данных нужно указывать. Конкретно - short . Без указания типов прокатит только на 1.7
     
    NaPsTeR нравится это.
  10. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
    Спасибо, с зачарованиями и крашами я разобрался. Теперь есть подписаный, зачареный меч. А как быть с цветами надписей? А то &6 не работает, а просто добавляется к имени.
     
  11. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Видимо придется использовать символ § вместо & в базе данных.

    Только PowerNBT делает замену [&]->[§], [/&]->[&] потому что в чат невозможно ввести цветосимвол. В базе данных - пишите что хотите.
     
    NaPsTeR нравится это.
  12. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
    Я с PowerNBT боюсь работать, ибо эти теги, как я понял, составляющая всего мира карты, и лишнее изменение без опыта работы с ними может повлечь за собой либо краш клиента, либо краш сервера. Или вообще можно потерять мир навсегда.
    Цвет протестировал, все работает. Теперь многое, что было скрыто от моего понимания, стало мне понятно. Еще раз спасибо за помощь.
     
    DPOH-VAR нравится это.

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