Проблема с зачарованием и effectID

Версия Minecraft
1.7.10
52
1
1
Решил я сделать зачарование (первый раз такой опыт).
Пишу по образу и подобию класс зачара:
Java:
public class EnchantmentSpectralRadiance extends Enchantment{
    public EnchantmentSpectralRadiance() {
        super(86, 1, EnumEnchantmentType.all);
        this.setName(LibEnchantmentsNames.SPECTRAL_RADIANCE);       
    }
    
    public boolean canApplyAtEnchantingTable(final ItemStack stack) {
        return false;
    }
    
    public boolean canApply(final ItemStack stack) {
        return super.canApply(stack) && (stack.getItem() instanceof ISpectralRadiancable);
    }
    
}

Все параметры передал в конструкторе. Но это для видимости.
86 - это effectID (как сказано в Enchantment) (Нет ни единого мода, который бы добавлял новые зачарования, только ванильные, id не совпадает).

Потом я накладываю это зачарование на предмет:
stack.addEnchantment(EnchantmentList.enchSpectralRadiance, 1); (1 - lvl)
Когда накладывается зачар, майн вылетает, говорит:

java.lang.NullPointerException: Ticking entity
at net.minecraft.item.ItemStack.addEnchantment(ItemStack.java:790)
. . .

Ошибка где-то тут:
nbttagcompound.setShort("id", (short)p_77966_1_.effectId);

Вот весь метод:
Java:
  public void addEnchantment(Enchantment p_77966_1_, int p_77966_2_)
    {
        if (this.stackTagCompound == null)
        {
            this.setTagCompound(new NBTTagCompound());
        }

        if (!this.stackTagCompound.hasKey("ench", 9))
        {
            this.stackTagCompound.setTag("ench", new NBTTagList());
        }

        NBTTagList nbttaglist = this.stackTagCompound.getTagList("ench", 10);
        NBTTagCompound nbttagcompound = new NBTTagCompound();
        nbttagcompound.setShort("id", (short)p_77966_1_.effectId);
        nbttagcompound.setShort("lvl", (short)((byte)p_77966_2_));
        nbttaglist.appendTag(nbttagcompound);
    }

Значение effectID я передал, оно меньше 256, не повторяется. Я не могу понять, в чем проблема. Помогите :3
 
Сверху