Войти или зарегистрироваться

Помогите Эффект зачарованности

  • Автор темы Автор темы musel70
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

musel70

Активный участник
Пользователь
Баллы
88
Приветствую форумчан, появился один вопрос.

Как можно добавить эффект зачарования. Я имею в виду переливающийся эффект(без самого зачарования).
 
Можно отправлять клиенту пакет о зачаровании. Предмет будет светиться, но и надпись о зачаровании тоже будет, хотя на самом деле его нет.
 
Приветствую форумчан, появился один вопрос.

Как можно добавить эффект зачарования. Я имею в виду переливающийся эффект(без самого зачарования).
Ну можно создать своё зачарование и дать ему какое-нибудь "пустое" имя, ну как костылёк.
 
NBT Теги:
Код:
    /**
     *
     * Оригиналка: https://github.com/nisovin/MagicSpells/blob/master/src/com/nisovin/magicspells/volatilecode/VolatileCodeEnabled_1_7_R3.java
     *
     * Версия MC 1.7.10
     * @param item - Предмет который вы хотите зачаровать
     * @return
     */
    public ItemStack addFakeEnchantment(ItemStack item) {
        if (!(item instanceof CraftItemStack)) {
            item = CraftItemStack.asCraftCopy(item);
        }
        NBTTagCompound tag = getTag(item);      
        if (tag == null) {
            tag = new NBTTagCompound();
        }
        if (!tag.hasKey("ench")) {
            tag.set("ench", new NBTTagList());
        }      
        return setTag(item, tag);
    }
  
    private static NBTTagCompound getTag(ItemStack item) {
        if (item instanceof CraftItemStack) {
            try {
                Field field = CraftItemStack.class.getDeclaredField("handle");
                field.setAccessible(true);
                return ((net.minecraft.server.v1_7_R4.ItemStack)field.get(item)).tag;
            } catch (Exception e) {
            }
        }
        return null;
    }
  
    private static ItemStack setTag(ItemStack item, NBTTagCompound tag) {
        CraftItemStack craftItem = null;
        if (item instanceof CraftItemStack) {
            craftItem = (CraftItemStack)item;
        } else {
            craftItem = CraftItemStack.asCraftCopy(item);
        }
      
        net.minecraft.server.v1_7_R4.ItemStack nmsItem = null;
        try {
            Field field = CraftItemStack.class.getDeclaredField("handle");
            field.setAccessible(true);
            nmsItem = ((net.minecraft.server.v1_7_R4.ItemStack)field.get(item));
        } catch (Exception e) {
        }
        if (nmsItem == null) {
            nmsItem = CraftItemStack.asNMSCopy(craftItem);
        }
      
        nmsItem.tag = tag;
        try {
            Field field = CraftItemStack.class.getDeclaredField("handle");
            field.setAccessible(true);
            field.set(craftItem, nmsItem);
        } catch (Exception e) {
        }
      
        return craftItem;
    }
 
Огромное спасибо за помощь!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх