Fix FabricItem.getAttributeModifiers ()

This commit is contained in:
opekope2 2024-05-30 10:22:10 +02:00 committed by GitHub
parent 8d125e3b6f
commit 62487233c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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