Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Не обновляет атрибуты

Тема в разделе "Разработка плагинов для новичков", создана пользователем jusik, 2 янв 2017.

Статус темы:
Закрыта.
  1. Автор темы
    jusik

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

    Баллы:
    66
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    Код:
    @EventHandler
        public void SETLEVEL(PlayerInteractEvent e){
            if(e.getAction()==Action.PHYSICAL)return;
                if(e.getItem()!=null)
                if(e.getItem().getType()==Material.WOOD_SWORD){
                     ItemStack stack = e.getItem();
                     net.minecraft.server.v1_11_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(stack);
                     NBTTagCompound compound = nmsStack.getTag();
                     if (compound == null) {
                        compound = new NBTTagCompound();
                         ((net.minecraft.server.v1_11_R1.ItemStack) nmsStack).setTag(compound);
                         compound = nmsStack.getTag();
                     }
                     NBTTagList modifiers = new NBTTagList();
                     NBTTagCompound healthboost = new NBTTagCompound();
                     healthboost.set("AttributeName", new NBTTagString("generic.attackDamage"));
                     healthboost.set("Name", new NBTTagString("generic.attackDamage"));
                     healthboost.set("Amount", new NBTTagInt(1));
                     healthboost.set("Operation", new NBTTagInt(0));
                     healthboost.set("UUIDLeast", new NBTTagInt(894654));
                     healthboost.set("UUIDMost", new NBTTagInt(2872));
                     modifiers.add(healthboost);
                     compound.set("AttributeModifiers", modifiers);
                     nmsStack.setTag(compound);
                     stack = CraftItemStack.asBukkitCopy(nmsStack);
                }
        }
    В тайтле всё изложено
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

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

    Баллы:
    46
    Ты все атрибуты добавил, в переменную внёс, но дальше дело не пошло.Ты всё это сделал на копии, теперь тебе нужно эту копию выдать.Например так:
    Код:
    e.getPlayer().setItemInHand(stack);
    [DOUBLEPOST=1483389249,1483388542][/DOUBLEPOST]И это:
    Код:
    NBTTagCompound compound = nmsStack.getTag();
    if (compound == null) {
        compound = new NBTTagCompound();
        ((net.minecraft.server.v1_11_R1.ItemStack) nmsStack).setTag(compound);
        compound = nmsStack.getTag();
    }
    Замени на это:
    Код:
    NBTTagCompound compound = (nmsStack.hasTag() ? nmsStack.getTag() : new NBTTagCompound());
     
  4. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я мог бы написать тебе работу с тагами так чтто бы они были независимы от версии, но т.к. это долго, то я пока что не буду. елси тебе это будет надо, тогда напиши - сделаю
     
  5. Автор темы
    jusik

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

    Баллы:
    66
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    Не нужно спасибо.[DOUBLEPOST=1483438568,1483438537][/DOUBLEPOST]
    Всё работает спасибо большое
     
Статус темы:
Закрыта.

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