diff --git a/src/main/java/com/dtteam/dtaddon_lib/blocks/fruit/IFallingFruit.java b/src/main/java/com/dtteam/dtaddon_lib/blocks/fruit/IFallingFruit.java index 8961d09..5a24f97 100644 --- a/src/main/java/com/dtteam/dtaddon_lib/blocks/fruit/IFallingFruit.java +++ b/src/main/java/com/dtteam/dtaddon_lib/blocks/fruit/IFallingFruit.java @@ -1,6 +1,5 @@ package com.dtteam.dtaddon_lib.blocks.fruit; -import com.google.common.collect.Lists; import com.dtteam.dtaddon_lib.init.DTAddonLibRegistries; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundSource; @@ -15,10 +14,8 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.FallingBlock; import net.minecraft.world.level.block.state.BlockState; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.List; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface IFallingFruit { @@ -58,27 +55,33 @@ default FallingBlockEntity getFallingEntity (Level world, BlockPos pos, BlockSta return new FallingBlockEntity(world, (double)pos.getX() + 0.5D, pos.getY(), (double)pos.getZ() + 0.5D, state){ @Override - public boolean causeFallDamage(float pFallDistance, float pMultiplier, DamageSource pSource) { + public boolean causeFallDamage(float pFallDistance, float pMultiplier, @NotNull DamageSource pSource) { int i = (int)Math.ceil(pFallDistance - 1.0F); - if (i > 0) { - List list = Lists.newArrayList(level().getEntities(this, this.getBoundingBox())); - for(Entity entity : list) { - if (entity instanceof LivingEntity){ - entity.hurt(getDamageSource(level()), - (float)Math.min(Math.floor((float)i * IFallingFruit.fallDamageAmount), IFallingFruit.fallDamageMax) * pMultiplier); - level().playSound(null, pos, - DTAddonLibRegistries.FRUIT_BONK.get(), SoundSource.BLOCKS, - 1.0F, 1.0F); - } + if (i <= 0) { + return false; + } + + Level level = level(); + + for (Entity entity : level.getEntities(this, this.getBoundingBox())) { + if (!(entity instanceof LivingEntity)) { + continue; } + + entity.hurt(getDamageSource(level), + (float)Math.min(Math.floor((float)i * IFallingFruit.fallDamageAmount), IFallingFruit.fallDamageMax) * pMultiplier); + level.playSound(null, getX(), getY(), getZ(), + DTAddonLibRegistries.FRUIT_BONK.get(), SoundSource.BLOCKS, + 1.0F, 1.0F); } + return false; } @Nullable @Override - public ItemEntity spawnAtLocation(@Nonnull ItemStack pStack, float pOffsetY) { - return super.spawnAtLocation(getDropOnFallItems( this), pOffsetY); + public ItemEntity spawnAtLocation(@NotNull ItemStack pStack, float pOffsetY) { + return super.spawnAtLocation(getDropOnFallItems(this), pOffsetY); } }; } diff --git a/src/main/resources/assets/dtaddon_lib/lang/en_us.json b/src/main/resources/assets/dtaddon_lib/lang/en_us.json index 482f090..bdf7e07 100644 --- a/src/main/resources/assets/dtaddon_lib/lang/en_us.json +++ b/src/main/resources/assets/dtaddon_lib/lang/en_us.json @@ -1,5 +1,5 @@ { - "subtitle.dtaddon_lib.falling_fruit.bonk": "Player bonked by fruit", + "subtitle.dtaddon_lib.falling_fruit.bonk": "Entity bonked by fruit", "block.dtaddon_lib.large_rooty_water":"Large Water Roots", "block.dtaddon_lib.big_oak_branch": "Big Oak Tree",