Fix save/load NaN Entity Motion (#12269)
This commit is contained in:
@@ -22,9 +22,7 @@ import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.level.ChunkPos;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
||||
import org.bukkit.craftbukkit.util.Waitable;
|
||||
@@ -103,6 +101,18 @@ public final class MCUtil {
|
||||
run.run();
|
||||
}
|
||||
|
||||
public static double sanitizeNanInf(final double value, final double defaultValue) {
|
||||
return Double.isNaN(value) || Double.isInfinite(value) ? defaultValue : value;
|
||||
}
|
||||
|
||||
public static Vec3 sanitizeNanInf(final Vec3 vec3, final double defaultValue) {
|
||||
return new Vec3(
|
||||
sanitizeNanInf(vec3.x, defaultValue),
|
||||
sanitizeNanInf(vec3.y, defaultValue),
|
||||
sanitizeNanInf(vec3.z, defaultValue)
|
||||
);
|
||||
}
|
||||
|
||||
public static <T> T ensureMain(Supplier<T> run) {
|
||||
return ensureMain(null, run);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user