I'm trying to check if the player is at the edge of a radius. How can I do that? Code (Text): @EventHandler public void spawnGoblin(PlayerMoveEvent e) { Player p = e.getPlayer(); Location location = new Location(Bukkit.getWorld("world"), -4.762, 89, -19.306); if(p.getLocation().distance(location) == 10) { System.out.println("10"); } }
Location::distance returns the distance calculated as a double. The chances it's exactly 10, are unlikely. You'll need to round the distance calculated. Other things to consider here: This will be called every time a player moves, including any changes in yaw or pitch. You may want to only run your code when a player has moved a full block. Use Location::distanceSquared for better performance over using Math::sqrt that Location::distance internally uses. You'll just need to square your radius (10 = 10*10) to account for this change.