if (!this.perms.playerHas(player.getName(), "subzone", this.perms.playerHas(player.getName(), "admin", false))) {
player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("NoPermission"));
return false;
}
}
PermissionGroup group = Residence.getPermissionManager().getGroup(player);
if (this.getZoneDepth() >= group.getMaxSubzoneDepth()) {
player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneMaxDepth"));
return false;
}
}
CuboidArea newArea = new CuboidArea(loc1, loc2);
Set<Entry<String, ClaimedResidence>> set = subzones.entrySet();
for (Entry<String, ClaimedResidence> resEntry : set) {
ClaimedResidence res = resEntry.getValue();
if (res.checkCollision(newArea)) {
if (player != null) {
player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("SubzoneCollide", ChatColor.YELLOW + resEntry.getKey()));
}
return false;
}
}
ClaimedResidence newres;
if (player != null) {
newres = new ClaimedResidence(owner, perms.getWorld(), this);
newres.addArea(player, newArea, name, resadmin);
} else {
newres = new ClaimedResidence(owner, perms.getWorld(), this);
newres.addArea(newArea, name);
}
if (newres.getAreaCount() != 0) {
newres.getPermissions().applyDefaultFlags();
if (player != null) {
PermissionGroup group = Residence.getPermissionManager().getGroup(player);
newres.setEnterMessage(group.getDefaultEnterMessage());
newres.setLeaveMessage(group.getDefaultLeaveMessage());
}
if (Residence.getConfigManager().flagsInherit()) {
newres.getPermissions().setParent(perms);
}
subzones.put(name, newres);