diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingAxe.java b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingAxe.java index 3fff231..d79557b 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingAxe.java +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingAxe.java @@ -1,13 +1,18 @@ package com.acethewildfire.acesbs.item.custom; -import net.fabricmc.fabric.api.item.v1.EnchantingContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.AxeItem; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ToolMaterial; -import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.List; public class SmeltingAxe extends AxeItem { @@ -15,4 +20,18 @@ public class SmeltingAxe extends AxeItem { public SmeltingAxe(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } + + @Override + public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { + if (!world.isClient() && miner instanceof PlayerEntity player) { + + List drops = Block.getDroppedStacks(state, (ServerWorld) world, pos, null, player, stack); + + for (ItemStack drop : drops) { + stack.damage(drop.getCount(), miner, EquipmentSlot.MAINHAND); + } + } + + return super.postMine(stack, world, state, pos, miner); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingHammer.java b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingHammer.java index e6f6168..20ec671 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingHammer.java +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingHammer.java @@ -1,30 +1,35 @@ package com.acethewildfire.acesbs.item.custom; -import net.fabricmc.fabric.api.item.v1.EnchantingContext; import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ToolMaterial; -import net.minecraft.recipe.RecipeEntry; -import net.minecraft.recipe.RecipeType; -import net.minecraft.recipe.SmeltingRecipe; -import net.minecraft.recipe.input.SingleStackRecipeInput; -import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import java.util.List; -import java.util.Optional; public class SmeltingHammer extends HammerItem { public SmeltingHammer(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } + + @Override + public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { + if (!world.isClient() && miner instanceof PlayerEntity player) { + + List drops = Block.getDroppedStacks(state, (ServerWorld) world, pos, null, player, stack); + + for (ItemStack drop : drops) { + stack.damage(drop.getCount(), miner, EquipmentSlot.MAINHAND); + } + } + + return super.postMine(stack, world, state, pos, miner); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingPickaxe.java b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingPickaxe.java index b34dcfd..a208ff5 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingPickaxe.java +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingPickaxe.java @@ -1,15 +1,41 @@ package com.acethewildfire.acesbs.item.custom; -import net.fabricmc.fabric.api.item.v1.EnchantingContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; +import com.acethewildfire.acesbs.AcesBS; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.recipe.RecipeEntry; +import net.minecraft.recipe.RecipeType; +import net.minecraft.recipe.SmeltingRecipe; +import net.minecraft.recipe.input.SingleStackRecipeInput; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.List; +import java.util.Optional; public class SmeltingPickaxe extends Item { public SmeltingPickaxe(Settings settings) { super(settings); } + + @Override + public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { + if (!world.isClient() && miner instanceof PlayerEntity player) { + + List drops = Block.getDroppedStacks(state, (ServerWorld) world, pos, null, player, stack); + + for (ItemStack drop : drops) { + stack.damage(drop.getCount(), miner, EquipmentSlot.MAINHAND); + } + } + + return super.postMine(stack, world, state, pos, miner); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingShovel.java b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingShovel.java index bd6f9ea..82cd54d 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingShovel.java +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/SmeltingShovel.java @@ -1,13 +1,18 @@ package com.acethewildfire.acesbs.item.custom; -import net.fabricmc.fabric.api.item.v1.EnchantingContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.AxeItem; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.ShovelItem; import net.minecraft.item.ToolMaterial; -import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.List; public class SmeltingShovel extends ShovelItem { @@ -15,4 +20,18 @@ public class SmeltingShovel extends ShovelItem { public SmeltingShovel(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } + + @Override + public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { + if (!world.isClient() && miner instanceof PlayerEntity player) { + + List drops = Block.getDroppedStacks(state, (ServerWorld) world, pos, null, player, stack); + + for (ItemStack drop : drops) { + stack.damage(drop.getCount(), miner, EquipmentSlot.MAINHAND); + } + } + + return super.postMine(stack, world, state, pos, miner); + } }