diff --git a/fabric/src/main/java/net/satisfy/farm_and_charm/fabric/core/mixin/ItemStackMixin.java b/fabric/src/main/java/net/satisfy/farm_and_charm/fabric/core/mixin/ItemStackMixin.java deleted file mode 100644 index f494586b..00000000 --- a/fabric/src/main/java/net/satisfy/farm_and_charm/fabric/core/mixin/ItemStackMixin.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.satisfy.farm_and_charm.fabric.core.mixin; - -import net.minecraft.ChatFormatting; -import net.minecraft.core.component.DataComponents; -import net.minecraft.network.chat.Component; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.*; -import net.minecraft.world.item.component.CustomData; -import net.minecraft.world.level.Level; -import net.satisfy.farm_and_charm.core.registry.MobEffectRegistry; -import net.satisfy.farm_and_charm.core.registry.ObjectRegistry; -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.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import java.util.List; - -@Mixin(ItemStack.class) -public abstract class ItemStackMixin { - - @Shadow - public abstract Item getItem(); - - @Inject(method = "getRarity", at = @At("RETURN"), cancellable = true) - private void farm_and_charm$modifyRarity(CallbackInfoReturnable cir) { - var farm_and_charm$stack = this.getItem().getDefaultInstance(); - if (farm_and_charm$stack.is(ObjectRegistry.CHICKEN_COOP_ITEM.get())) { - CustomData data = farm_and_charm$stack.getOrDefault(DataComponents.BLOCK_ENTITY_DATA, CustomData.EMPTY); - if (data.copyTag() != null && data.contains("BlockEntityTag")) { - cir.setReturnValue(Rarity.COMMON); - } - } - } - - @Inject(method = "finishUsingItem", at = @At("RETURN")) - private void addNourishmentAfterSoup(Level level, LivingEntity livingEntity, CallbackInfoReturnable cir) { - if (livingEntity == null || level.isClientSide()) return; - Item consumedItem = ((ItemStack) (Object) this).getItem(); - boolean isSoup = consumedItem == Items.MUSHROOM_STEW || consumedItem == Items.BEETROOT_SOUP || consumedItem == Items.RABBIT_STEW; - if (!isSoup) return; - int duration = 20 * 90; - int amplifier = 0; - livingEntity.addEffect(new MobEffectInstance(MobEffectRegistry.getHolder(MobEffectRegistry.SUSTENANCE), duration, amplifier)); - } - - @Inject(method = "getTooltipLines", at = @At("RETURN"), cancellable = true) - private void farm_and_charm$addSoupEffectLine(Item.TooltipContext tooltipContext, Player player, TooltipFlag tooltipFlag, CallbackInfoReturnable> cir) { - ItemStack self = (ItemStack) (Object) this; - Item item = self.getItem(); - if (!(item == Items.MUSHROOM_STEW || item == Items.BEETROOT_SOUP || item == Items.RABBIT_STEW)) return; - int durationTicks = 20 * 90; - int totalSeconds = durationTicks / 20; - int minutes = totalSeconds / 60; - int seconds = totalSeconds % 60; - String timeText = String.format("%02d:%02d", minutes, seconds); - List lines = cir.getReturnValue(); - lines.add(Component.translatable("effect.farm_and_charm.sustenance").append(Component.literal(" (" + timeText + ")")).withStyle(ChatFormatting.BLUE)); - cir.setReturnValue(lines); - } -} diff --git a/fabric/src/main/resources/FarmAndCharm.mixins.json b/fabric/src/main/resources/FarmAndCharm.mixins.json index cd472e0d..47bd43e7 100644 --- a/fabric/src/main/resources/FarmAndCharm.mixins.json +++ b/fabric/src/main/resources/FarmAndCharm.mixins.json @@ -20,7 +20,6 @@ "ExperienceOrbMixin", "FarmlandBlockMixin", "FoxMixin", - "ItemStackMixin", "LivingEntityMixin", "MobAccessor", "ParrotMixin", diff --git a/neoforge/src/main/java/net/satisfy/farm_and_charm/neoforge/core/mixin/ItemStackMixin.java b/neoforge/src/main/java/net/satisfy/farm_and_charm/neoforge/core/mixin/ItemStackMixin.java deleted file mode 100644 index df6eb8b0..00000000 --- a/neoforge/src/main/java/net/satisfy/farm_and_charm/neoforge/core/mixin/ItemStackMixin.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.satisfy.farm_and_charm.neoforge.core.mixin; - -import net.minecraft.core.component.DataComponents; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Rarity; -import net.minecraft.world.item.component.CustomData; -import net.satisfy.farm_and_charm.core.registry.ObjectRegistry; -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.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(ItemStack.class) -public abstract class ItemStackMixin { - - @Shadow public abstract Item getItem(); - - @Inject(method = "getRarity", at = @At("RETURN"), cancellable = true) - private void farm_and_charm$modifyRarity(CallbackInfoReturnable cir) { - var farm_and_charm$stack = this.getItem().getDefaultInstance(); - if (farm_and_charm$stack.is(ObjectRegistry.CHICKEN_COOP_ITEM.get())) { - CustomData data = farm_and_charm$stack.getOrDefault(DataComponents.BLOCK_ENTITY_DATA, CustomData.EMPTY); - if (data.copyTag() != null && data.contains("BlockEntityTag")) { - cir.setReturnValue(Rarity.COMMON); - } - } - } -} diff --git a/neoforge/src/main/resources/FarmAndCharm-neoforge.mixins.json b/neoforge/src/main/resources/FarmAndCharm-neoforge.mixins.json index b0163576..ce84a468 100644 --- a/neoforge/src/main/resources/FarmAndCharm-neoforge.mixins.json +++ b/neoforge/src/main/resources/FarmAndCharm-neoforge.mixins.json @@ -19,7 +19,6 @@ "CropBlockMixin", "FarmlandBlockMixin", "FoxMixin", - "ItemStackMixin", "LivingEntityMixin", "MobAccessor", "ParrotMixin",