@EventHandler public void onTeleportOutOfBorder(final PlayerTeleportEvent event) { final Player player = event.getPlayer(); final GameArena arena = this.arenaManager.findArenaByPlayer(player.getUniqueId()); if (arena == null || event.getCause() != PlayerTeleportEvent.TeleportCause.ENDER_PEARL) { return; } final WorldBorder border = arena.getBorder(player.getUniqueId()); if (border == null) { player.sendMessage("wykrywanie perly poza borderem, ale border == null | debug, jak ci sie to pokazuje to napisz"); return; } final double worldborder = player.getWorld().getWorldBorder().getSize() / 2.0; if (border.getCenterX() + worldborder < event.getTo().getX() || border.getCenterX() - worldborder > event.getTo().getX() || border.getCenterZ() + worldborder < event.getTo().getZ() || border.getCenterZ() - worldborder > event.getTo().getZ()) { event.setCancelled(true); player.sendMessage(colored(MessagesConfig.ARENA$CANNOT_USE_PEARL_OUTSIDE_BORDER)); player.getInventory().addItem(new ItemStack(Material.ENDER_PEARL)); } }