superb-warfare/src/main/java/net/mcreator/target/procedures/SenpaiDangShiTiGengXinKeShiProcedure.java
2024-05-06 14:25:44 +08:00

32 lines
1.4 KiB
Java

package net.mcreator.target.procedures;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import java.util.Comparator;
public class SenpaiDangShiTiGengXinKeShiProcedure {
public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) {
if (entity == null) return;
double target;
entity.getPersistentData().putDouble("findtarget", (entity.getPersistentData().getDouble("findtarget") + 1));
target = entity.getPersistentData().getDouble("findtarget");
if (target == 1 && entity instanceof Mob mob) {
final Vec3 _center = new Vec3(x, y, z);
world.getEntitiesOfClass(Entity.class, new AABB(_center, _center).inflate(1024 / 2d), e -> true)
.stream()
.sorted(Comparator.comparingDouble(e -> e.distanceToSqr(_center)))
.filter(e -> e instanceof Player player && !player.isCreative())
.forEach(e -> mob.setTarget((LivingEntity) e));
}
if (target >= 100) {
entity.getPersistentData().putDouble("findtarget", 0);
}
}
}