@EventHandler(priority = EventPriority.HIGHEST) public void onLocalChat(final EssentialsLocalChatEvent event) { final Player sender = event.getPlayer(); final Location loc = sender.getLocation(); final World world = loc.getWorld(); for (Player onlinePlayer : server.getOnlinePlayers()) { String type = _("chatTypeLocal"); final IUser user = ess.getUser(onlinePlayer); if (user.isIgnoringPlayer(ess.getUser(sender))) { continue; } if (!user.equals(sender)) { boolean abort = false; final Location playerLoc = user.getLocation(); if (playerLoc.getWorld() != world) { abort = true; } final double delta = playerLoc.distanceSquared(loc); if (delta > event.getRadius()) { abort = true; } if (abort) { if (ChatPermissions.getPermission("spy").isAuthorized(user)) { type = type.concat(_("chatTypeSpy")); } } } final String message = type.concat(String.format(event.getFormat(), sender.getDisplayName(), event.getMessage())); user.sendMessage(message); } }