diff --git a/Fabric/src/main/java/vazkii/botania/fabric/mixin/PlayerFabricMixin.java b/Fabric/src/main/java/vazkii/botania/fabric/mixin/PlayerFabricMixin.java index 28a1305e95..771979ee13 100644 --- a/Fabric/src/main/java/vazkii/botania/fabric/mixin/PlayerFabricMixin.java +++ b/Fabric/src/main/java/vazkii/botania/fabric/mixin/PlayerFabricMixin.java @@ -36,7 +36,6 @@ import vazkii.botania.common.PlayerAccess; import vazkii.botania.common.handler.EquipmentHandler; import vazkii.botania.common.handler.PixieHandler; -import vazkii.botania.common.item.equipment.armor.manasteel.ManasteelArmorItem; import vazkii.botania.common.item.equipment.armor.terrasteel.TerrasteelHelmItem; import vazkii.botania.common.item.equipment.bauble.*; import vazkii.botania.common.item.relic.RingOfOdinItem; @@ -114,16 +113,6 @@ private float cushionFall(float originalDist) { return SojournersSashItem.onPlayerFall((Player) (Object) this, originalDist); } - @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Inventory;tick()V"), method = "aiStep") - private void tickArmor(CallbackInfo ci) { - Player self = (Player) (Object) this; - for (ItemStack stack : inventory.armor) { - if (stack.getItem() instanceof ManasteelArmorItem) { - ((ManasteelArmorItem) stack.getItem()).onArmorTick(stack, self.level(), self); - } - } - } - @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;setLastHurtMob(Lnet/minecraft/world/entity/Entity;)V"), method = "attack") private void onAttack(Entity target, CallbackInfo ci) { CharmOfTheDivaItem.onEntityDamaged((Player) (Object) this, target); diff --git a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ManasteelArmorItem.java b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ManasteelArmorItem.java index d899381fb0..c6ba00e8c3 100644 --- a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ManasteelArmorItem.java +++ b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ManasteelArmorItem.java @@ -61,14 +61,9 @@ public ManasteelArmorItem(Type type, ArmorMaterial mat, Properties props) { @Override public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { if (entity instanceof Player player) { - onArmorTick(stack, world, player); - } - } - - @SoftImplement("IForgeItem") - public void onArmorTick(ItemStack stack, Level world, Player player) { - if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) { - stack.setDamageValue(stack.getDamageValue() - 1); + if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) { + stack.setDamageValue(stack.getDamageValue() - 1); + } } } diff --git a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ManaweaveHelmItem.java b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ManaweaveHelmItem.java index 231c2b3307..207a163c53 100644 --- a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ManaweaveHelmItem.java +++ b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/manaweave/ManaweaveHelmItem.java @@ -8,6 +8,7 @@ */ package vazkii.botania.common.item.equipment.armor.manaweave; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; @@ -42,9 +43,11 @@ public boolean shouldGiveProficiency(ItemStack stack, EquipmentSlot slot, Player } @Override - public void onArmorTick(ItemStack stack, Level world, Player player) { - if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) { - stack.setDamageValue(stack.getDamageValue() - 1); + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { + if (entity instanceof Player player) { + if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) { + stack.setDamageValue(stack.getDamageValue() - 1); + } } } diff --git a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/TerrasteelHelmItem.java b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/TerrasteelHelmItem.java index 161aaa6fc0..d38b4909bf 100644 --- a/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/TerrasteelHelmItem.java +++ b/Xplat/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/TerrasteelHelmItem.java @@ -13,6 +13,7 @@ import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; @@ -40,9 +41,11 @@ public TerrasteelHelmItem(Properties props) { } @Override - public void onArmorTick(ItemStack stack, Level world, Player player) { - super.onArmorTick(stack, world, player); - if (!world.isClientSide && hasArmorSet(player)) { + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { + super.inventoryTick(stack, world, entity, slot, selected); + if (!world.isClientSide && entity instanceof Player player + && player.getInventory().armor.contains(stack) + && hasArmorSet(player)) { int food = player.getFoodData().getFoodLevel(); if (food > 0 && food < 18 && player.isHurt() && player.tickCount % 80 == 0) { player.heal(1F);