Fix FabricItem.getAttributeModifiers ()

This commit is contained in:
opekope2 2024-05-29 16:39:45 +02:00 committed by GitHub
parent 6fc22b9905
commit 29e5f1d91b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -25,7 +25,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.ComponentType;
import net.minecraft.component.type.AttributeModifiersComponent;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.Item;
@ -72,4 +75,27 @@ public abstract class ItemStackMixin implements FabricItemStack {
original.call(instance, amount, serverWorld, serverPlayerEntity, consumer);
}
@Redirect(
method = "appendAttributeModifiersTooltip",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/ComponentType;Ljava/lang/Object;)Ljava/lang/Object;"
)
)
public Object appendAttributeModifiersTooltip(ItemStack stack, ComponentType<AttributeModifiersComponent> type, Object fallback) {
return getItem().getAttributeModifiers(stack);
}
@Redirect(
method = {"applyAttributeModifier", "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);
}
}