mirror of
https://github.com/FabricMC/fabric.git
synced 2025-09-04 16:59:11 +00:00
Fix FabricItem.getAttributeModifiers (#3797)
This commit is contained in:
@@ -23,7 +23,10 @@ import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
import net.minecraft.component.DataComponentType;
|
||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -57,4 +60,27 @@ public abstract class ItemStackMixin implements FabricItemStack {
|
||||
|
||||
original.call(instance, amount, random, serverPlayerEntity, runnable);
|
||||
}
|
||||
|
||||
@Redirect(
|
||||
method = "appendAttributeModifiersTooltip",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/DataComponentType;Ljava/lang/Object;)Ljava/lang/Object;"
|
||||
)
|
||||
)
|
||||
public Object appendAttributeModifiersTooltip(ItemStack stack, DataComponentType<AttributeModifiersComponent> type, Object fallback) {
|
||||
return getItem().getAttributeModifiers(stack);
|
||||
}
|
||||
|
||||
@Redirect(
|
||||
method = "applyAttributeModifiers",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
target = "Lnet/minecraft/item/Item;getAttributeModifiers()Lnet/minecraft/component/type/AttributeModifiersComponent;"
|
||||
)
|
||||
)
|
||||
public AttributeModifiersComponent applyAttributeModifiers(Item item) {
|
||||
ItemStack stack = (ItemStack) (Object) this;
|
||||
return item.getAttributeModifiers(stack);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user