Skocz do zawartości
  • 0

Cooldown delay in 1.12.2


Xireu

Pytanie

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

to zależy, który attack speed chcesz zmienić, jeżeli playera, to w prosty sposób za pomocą atrybutów gracza i atrybutu:

Attribute.GENERIC_ATTACK_SPEED

a jeżeli przedmiotu, to musisz się bawić w nms i refleksje jeżeli multi-version, bo bukkit nie ma żadnego api od modyfikowania atrybutów przedmiotów:


        final ItemStack item = player.getInventory().getItem(0);
        final net.minecraft.server.v1_12_R1.ItemStack stack = CraftItemStack.asNMSCopy(item);
        final NBTTagCompound compound = stack.hasTag() ? stack.getTag() : new NBTTagCompound();
        final NBTTagList list = new NBTTagList();

        final NBTTagCompound attackSpeed = new NBTTagCompound();
        attackSpeed.set("AttributeName", new NBTTagString("generic.attackSpeed"));
        attackSpeed.set("Name", new NBTTagString("generic.attackSpeed"));
        attackSpeed.set("Amount", new NBTTagInt(100));
        attackSpeed.set("Operation", new NBTTagInt(0));
        attackSpeed.set("UUIDLeast", new NBTTagInt(894654));
        attackSpeed.set("UUIDMost", new NBTTagInt(2872));

        list.add(attackSpeed);
        compound.set("AttributeModifiers", list);
        stack.setTag(compound);

        final ItemStack newItem = CraftItemStack.asBukkitCopy(stack);
        player.getInventory().setItem(0, newItem);

możesz stworzyć własne factory lub nawet api od tego, nie użyłem refleksji, bo do tego sam musisz dojść :P

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...