Alternate fix

Checking to see if the block is Frosted Ice is failing, possibly due to the event happening before the block is placed.
This commit is contained in:
Cassian Godsted 2025-02-06 12:15:04 -05:00
parent 00468791dc
commit 6158272f4a

View file

@ -31,7 +31,9 @@ import net.minecraft.world.entity.projectile.ProjectileUtil;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.enchantment.Enchantments;
import net.minecraft.world.item.enchantment.FrostWalkerEnchantment;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
@ -49,6 +51,7 @@ import net.minecraftforge.event.entity.living.LivingKnockBackEvent;
import net.minecraftforge.event.entity.player.AttackEntityEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.event.level.BlockEvent.BreakEvent;
import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent;
import net.minecraftforge.eventbus.api.EventPriority;
@ -187,18 +190,10 @@ public class ExtendoGripItem extends Item {
public static void consumeDurabilityOnPlace(EntityPlaceEvent event) {
Entity entity = event.getEntity();
if (entity instanceof Player player) {
if (event.getPlacedBlock().is(Blocks.FROSTED_ICE)) {
for (ItemStack armorSlot : player.getArmorSlots()) {
for (Enchantment enchantment : armorSlot.getAllEnchantments().keySet()) {
if (!enchantment.equals(Enchantments.FROST_WALKER)) {
if (!event.getBlockSnapshot().getReplacedBlock().is(Blocks.WATER) && !event.getBlockSnapshot().getCurrentBlock().is(Blocks.WATER))
findAndDamageExtendoGrip(player);
}
}
}
}
else findAndDamageExtendoGrip(player);
}
}
// @SubscribeEvent(priority = EventPriority.LOWEST)
// public static void consumeDurabilityOnPlace(PlayerInteractEvent event) {