Как сделать что-бы предмет светился как при любом зачаре? Но без присвоения зачара(Броня)

Версия Minecraft
1.5+

jopi

Попрошайка
1,421
30
260
Как сделать что-бы предмет светился как при любом зачаре? Но без присвоения зачара(Броня)
Т.е. При вставке предмета я делаю в предмет NBT таг, и броня светится
Какой таг?
По типу setString("блаблабла")
Я узнал что зачар имеет 3 ентри.
NBT.getString("ench") и внутри ench ещё идёт id и lvl,
можно как-нить без написания внизу предмета зачара, и его зачарования на игроке сделать это?
p.s.
как правильно установить таг зачарования?
именно как делать проверку и тп я знаю!
 
Последнее редактирование:
7,099
324
1,510
В предмете переопредели метод hasEffect
Например, всегда светится:
Scala:
override def hasEffect(par1ItemStack: ItemStack, pass: Int)=true
 
7,099
324
1,510
Java:
//RenderBiped#shouldRenderPass
if (itemstack.isItemEnchanted())
{
    return 15;
}
//ItemStack
public boolean isItemEnchanted()
{
    return this.stackTagCompound != null && this.stackTagCompound.hasKey("ench", 9);
}
Значит, нужно stack.getTagCompound.setTag("ench", new NBTTagList());
 
7,099
324
1,510
nbtData нужно получить из стака, если ее нет, создать и сетнуть ее предмету
 

Eifel

Модератор
1,623
78
608
К примеру можно сделать такой метод:
Java:
 public static NBTTagCompound getNbt(ItemStack itemStack){
        NBTTagCompound nbt = itemStack.getTagCompound();
        if (nbt == null) {
            nbt = new NBTTagCompound();
            itemStack.setTagCompound(nbt);
        }
        return nbt;
    }
И потом когда надо вызывать и получать/создавать НБТ: NBTTagCompound nbtData = getNbt(stack); nbtData.setTag(...);
 

jopi

Попрошайка
1,421
30
260
nbtData нужно получить из стака, если ее нет, создать и сетнуть ее предмету
так а как сделать предмету именно таг зачарования что-бы броня светилась? остальное я знаю
Мне правильная установка через setTag нужна :(
 
Сверху