1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

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

Метки:
  1. Автор темы
    Error202

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

    Баллы:
    61
    Имя в Minecraft:
    Error202
    Lore меняется легко, а как правильно поменять атрибуты (для оружия: скорость, урон ...)?
    Делаю так:

    Код:
    ...
            net.minecraft.server.v1_15_R1.ItemStack nmsItem = CraftItemStack.asNMSCopy(item);
            NBTTagCompound tag = nmsItem.hasTag() ? nmsItem.getTag() : new NBTTagCompound();
            
            NBTTagCompound tagSpeed = new NBTTagCompound();
            NBTTagList tagList = new NBTTagList();
            
            tagSpeed.set("AttributeName", NBTTagString.a("generic.movementSpeed"));
            tagSpeed.set("Name", NBTTagString.a("generic.movementSpeed"));
            tagSpeed.set("Amount", NBTTagDouble.a(0.1));
            tagSpeed.set("Operation", NBTTagInt.a(0));
            tagSpeed.set("UUIDLeast", NBTTagInt.a(894654));
            tagSpeed.set("UUIDMost", NBTTagInt.a(2872));
            tagList.add(tagSpeed);
            tag.set("AttributeModifiers", tagList);
            nmsItem.setTag(tag);
            item = CraftItemStack.asBukkitCopy(nmsItem);
    ...
    
    Но в результате скорость дублируется:
    [​IMG]

    Как сделать только тогда, когда в ведущей руке?
     
  2. Автор темы
    Error202

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

    Баллы:
    61
    Имя в Minecraft:
    Error202
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Так же легко.
    Код:
        public static void test(ItemStack stack) {
            ItemMeta meta = stack.getItemMeta();
            AttributeModifier at = new AttributeModifier(UUID.randomUUID(), Attribute.GENERIC_ATTACK_SPEED.name(), 10,
                    AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
            meta.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, at);
            stack.setItemMeta(meta);
        }
     

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