Не могу проверить entity и при использовании предмета выдавать эффекты ему
package net.undertaker.timeofsacrificemod.item.custom;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.HitResult;
import java.util.Properties;
public class SpeedStimulatorItem extends Item {
public SpeedStimulatorItem(Properties properties) {
super(properties);
}
@Override
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand interactionHand) {
if (!level.isClientSide()) {
// Получаем результат трассировки луча
EntityHitResult entityHitResult = player.rayTrace (8.0D, 1.0F, false);
// Если курсор нацелен на сущность, применяем эффекты
if (entityHitResult != null && entityHitResult.getType() == HitResult.Type.ENTITY) {
Entity targetEntity = entityHitResult.getEntity();
if (targetEntity instanceof LivingEntity) {
LivingEntity livingEntity = (LivingEntity) targetEntity;
applyEffects(livingEntity);
}
} else {
// Иначе применяем эффекты на себя
applyEffects(player);
}
}
return super.use(level, player, interactionHand);
}
// Метод для применения эффектов на сущность
private void applyEffects(LivingEntity livingEntity) {
// Добавляем эффект регенерации на 10 секунд с уровнем 1
livingEntity.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 10 * 20, 0));
// Добавляем эффект силы на 10 секунд с уровнем 1
livingEntity.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 10 * 20, 0));
// Добавляем эффект скорости на 10 секунд с уровнем 1
livingEntity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 10 * 20, 0));
}
}
У меня есть данный код. Он должен проверять наведён ли курсор на энитити или игрока, и если наведён то выдаёт эффекты игроку или энтити, если же нет - выдаёт эффекты игроку который использовал. Ошибка у меня конкретно в строке
EntityHitResult entityHitResult = player.rayTrace (8.0D, 1.0F, false);
И я не знаю как её исправить. Буквально. Версия Forge 43.3.5, для Minecraft 1.19.2