@Override public void onPlayerTeleport(PlayerTeleportEvent event) { if (Permissions.TELEPORT.has(event.getPlayer())) return; if (event.getFrom().getWorld().equals(event.getTo().getWorld()) && event.getFrom().distance(event.getTo()) < 5) return; ChunkyResident chunkyResident = new ChunkyResident(event.getPlayer()); ChunkyTown myTown = chunkyResident.getTown(); if (myTown == null) return; TownChunk fromChunk = new TownChunk(ChunkyManager.getChunkyChunk(event.getFrom())); TownChunk toChunk = new TownChunk(ChunkyManager.getChunkyChunk(event.getTo())); ChunkyTown fromTown = fromChunk.getTown(); if (fromTown != null && fromTown.getEffectiveStance(myTown) != ChunkyTown.Stance.ALLY) { Strings.NO_TELEPORT.bad(chunkyResident); event.setCancelled(true); return; } ChunkyTown toTown = toChunk.getTown(); if (toTown != null && toTown.getEffectiveStance(myTown) != ChunkyTown.Stance.ALLY) { Strings.NO_TELEPORT.bad(chunkyResident); event.setCancelled(true); return; } }