32 lines
1.4 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|