From 6f315356b6662b87ca6f684d57a641bd2671b309 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Thu, 29 May 2025 04:58:00 -0700 Subject: [PATCH] Add MCUtil#toLocation from Folia Helper methods to convert NMS world/position to Bukkit Location --- .../main/java/io/papermc/paper/util/MCUtil.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/paper-server/src/main/java/io/papermc/paper/util/MCUtil.java b/paper-server/src/main/java/io/papermc/paper/util/MCUtil.java index 27927bb796..8492a06883 100644 --- a/paper-server/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/paper-server/src/main/java/io/papermc/paper/util/MCUtil.java @@ -22,7 +22,9 @@ 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; @@ -150,6 +152,20 @@ public final class MCUtil { return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2); } + /** + * Converts a NMS World/Vector to Bukkit Location + */ + public static Location toLocation(Level world, Vec3 pos) { + return new Location(world.getWorld(), pos.x(), pos.y(), pos.z()); + } + + /** + * Converts a NMS World/Vector to Bukkit Location + */ + public static Location toLocation(Level world, Vec3 pos, float yaw, float pitch) { + return new Location(world.getWorld(), pos.x(), pos.y(), pos.z(), yaw, pitch); + } + public static BlockPos toBlockPos(Position pos) { return new BlockPos(pos.blockX(), pos.blockY(), pos.blockZ()); }