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);
}
}
Ö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);
}
}