package be.isach.ultracosmetics.v1_8_R2;
import be.isach.ultracosmetics.version.IPathfinderUtil;
import net.minecraft.server.v1_8_R2.EntityInsentient;
import net.minecraft.server.v1_8_R2.PathfinderGoalSelector;
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_8_R2.util.UnsafeList;
import org.bukkit.entity.Entity;
import java.lang.reflect.Field;
/**
* @author RadBuilder
*/
public class PathfinderUtil implements IPathfinderUtil {
@Override
public void removePathFinders(Entity entity) {
net.minecraft.server.v1_8_R2.Entity nmsEntity = ((CraftEntity) entity).getHandle();
try {
Field bField = PathfinderGoalSelector.class.getDeclaredField("b");
bField.setAccessible(true);
Field cField = PathfinderGoalSelector.class.getDeclaredField("c");
cField.setAccessible(true);
bField.set(((EntityInsentient) nmsEntity).goalSelector, new UnsafeList<PathfinderGoalSelector>());
bField.set(((EntityInsentient) nmsEntity).targetSelector, new UnsafeList<PathfinderGoalSelector>());
cField.set(((EntityInsentient) nmsEntity).goalSelector, new UnsafeList<PathfinderGoalSelector>());
cField.set(((EntityInsentient) nmsEntity).targetSelector, new UnsafeList<PathfinderGoalSelector>());
} catch (Exception exc) {
exc.printStackTrace();
}
}
}