Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.

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;
    }
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх