Minecraft Weapon Util

TinkoprofPlus

Silver Üye
Katılım
30 Eki 2025
Mesajlar
60
Beğeniler
19
Biliyorsunuz ki Minecraft 1.21.5'de artık itemler private class olduğundan kaynaklı artık oyunda ki mevcut itemleri doğrudan kullanamıyoruz. (Örneğin KillAura için SwordItem packagesi) O yüzden bu sorunu fixlemek için yeni bir utile ihtiyacımız var.

Örnek olarak benim clientimde kullandığım util:

package me.lyrica.utils.minecraft; (packageyi kendinize göre düzenleyebilirsiniz.)

import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.EquippableComponent;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;

public class ItemCompatHelper {

public static boolean isSword(Item item) {
return item == Items.WOODEN_SWORD ||
item == Items.STONE_SWORD ||
item == Items.IRON_SWORD ||
item == Items.GOLDEN_SWORD ||
item == Items.DIAMOND_SWORD ||
item == Items.NETHERITE_SWORD;
}

public static boolean isAxe(Item item) {
return item == Items.WOODEN_AXE ||
item == Items.STONE_AXE ||
item == Items.IRON_AXE ||
item == Items.GOLDEN_AXE ||
item == Items.DIAMOND_AXE ||
item == Items.NETHERITE_AXE;
}

public static boolean isArmor(Item item) {
ItemStack stack = new ItemStack(item);
return stack.contains(DataComponentTypes.EQUIPPABLE);
}

public static boolean isArmor(ItemStack stack) {
return stack.contains(DataComponentTypes.EQUIPPABLE);
}

public static EquipmentSlot getArmorSlot(ItemStack stack) {
if (!isArmor(stack)) return null;
EquippableComponent equippable = stack.get(DataComponentTypes.EQUIPPABLE);
return equippable != null ? equippable.slot() : null;
}

public static boolean isWeapon(Item item) {
return isSword(item) || isAxe(item);
}
}
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt