From 191c907e24ad5a42fe03c48373276e968e4bfa25 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 30 Nov 2021 15:11:55 +0300 Subject: [PATCH] End Fish fire damage & enchantments cooking --- .../java/ru/betterend/entity/EndFishEntity.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/betterend/entity/EndFishEntity.java b/src/main/java/ru/betterend/entity/EndFishEntity.java index 8ae9ed17..a347030e 100644 --- a/src/main/java/ru/betterend/entity/EndFishEntity.java +++ b/src/main/java/ru/betterend/entity/EndFishEntity.java @@ -8,7 +8,9 @@ import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.InteractionHand; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.EntityDamageSource; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.MobSpawnType; @@ -17,7 +19,11 @@ import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.AbstractSchoolingFish; import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.Blocks; @@ -150,7 +156,15 @@ public class EndFishEntity extends AbstractSchoolingFish { @Override protected void dropFromLootTable(DamageSource source, boolean causedByPlayer) { - ItemEntity drop = new ItemEntity(level, getX(), getY(), getZ(), new ItemStack(EndItems.END_FISH_RAW)); + Item item = source.isFire() ? EndItems.END_FISH_COOKED : EndItems.END_FISH_RAW; + if (causedByPlayer && source instanceof EntityDamageSource) { + EntityDamageSource damageSource = (EntityDamageSource) source; + ItemStack handItem = ((Player) damageSource.getEntity()).getItemInHand(InteractionHand.MAIN_HAND); + if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.FIRE_ASPECT, handItem) > 0) { + item = EndItems.END_FISH_COOKED; + } + } + ItemEntity drop = new ItemEntity(level, getX(), getY(), getZ(), new ItemStack(item)); this.level.addFreshEntity(drop); } }