public void listResidences(Player player, String targetplayer, int page, boolean showhidden) { ArrayList<String> temp = new ArrayList<String>(); Set<Entry<String, ClaimedResidence>> set = residences.entrySet(); synchronized (residences) { Iterator<Entry<String, ClaimedResidence>> it = set.iterator(); while (it.hasNext()) { Entry<String, ClaimedResidence> next = it.next(); ClaimedResidence res = next.getValue(); boolean hidden = res.getPermissions().has("hidden", false); if ((showhidden && hidden) || (!showhidden && !hidden) || (res.getPermissions().getOwner().equals(player.getName()) && targetplayer.equals(player.getName()) && (!showhidden && hidden))) { if (res.getPermissions().getOwner().equalsIgnoreCase(targetplayer)) { temp.add( "§a" + next.getKey() + "§e - " + Residence.getLanguage().getPhrase("World") + ": " + res.getWorld()); } } } } InformationPager.printInfo( player, Residence.getLanguage().getPhrase("Residences") + " - " + targetplayer, temp, page); }
public void removeResidence(Player player, String name, boolean resadmin) { ClaimedResidence res = this.getByName(name); if (res != null) { if (player != null && !resadmin) { if (!res.getPermissions().hasResidencePermission(player, true) && !resadmin) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("NoPermission")); return; } } ResidenceDeleteEvent resevent = new ResidenceDeleteEvent( player, res, player == null ? DeleteCause.OTHER : DeleteCause.PLAYER_DELETE); Residence.getServ().getPluginManager().callEvent(resevent); if (resevent.isCancelled()) return; ClaimedResidence parent = res.getParent(); if (parent != null) { String[] split = name.split("\\."); parent.removeSubzone(split[split.length - 1]); } else { residences.remove(name); } // Residence.getLeaseManager().removeExpireTime(name); - causing concurrent modification // exception in lease manager... worked around for now Residence.getRentManager().removeRentable(name); if (player != null) player.sendMessage( "§a" + Residence.getLanguage().getPhrase("ResidenceRemove", "§e" + name + "§a")); } else { if (player != null) player.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidResidence")); } }
public boolean addResidence(String name, String owner, Location loc1, Location loc2) { if (!Residence.validName(name)) return false; if (loc1 == null || loc2 == null || !loc1.getWorld().getName().equals(loc2.getWorld().getName())) { return false; } PermissionGroup group = Residence.getPermissionManager().getGroup(owner, loc1.getWorld().getName()); CuboidArea newArea = new CuboidArea(loc1, loc2); ClaimedResidence newRes = new ClaimedResidence(owner, loc1.getWorld().getName()); newRes.getPermissions().applyDefaultFlags(); newRes.setEnterMessage(group.getDefaultEnterMessage()); newRes.setLeaveMessage(group.getDefaultLeaveMessage()); ResidenceCreationEvent resevent = new ResidenceCreationEvent(null, name, newRes, newArea); Residence.getServ().getPluginManager().callEvent(resevent); if (resevent.isCancelled()) { return false; } newArea = resevent.getPhysicalArea(); name = resevent.getResidenceName(); if (residences.containsKey(name)) { return false; } newRes.addArea(newArea, "main"); if (newRes.getAreaCount() != 0) { residences.put(name, newRes); } return true; }
public void mirrorPerms( Player reqPlayer, String targetArea, String sourceArea, boolean resadmin) { ClaimedResidence reciever = this.getByName(targetArea); ClaimedResidence source = this.getByName(sourceArea); if (source == null || reciever == null) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidResidence")); return; } if (!resadmin) { if (!reciever.getPermissions().hasResidencePermission(reqPlayer, true) || !source.getPermissions().hasResidencePermission(reqPlayer, true)) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("NoPermission")); return; } } reciever.getPermissions().applyTemplate(reqPlayer, source.getPermissions(), resadmin); }
public void giveResidence( Player reqPlayer, String targPlayer, String residence, boolean resadmin) { ClaimedResidence res = getByName(residence); if (res == null) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidResidence")); return; } if (!res.getPermissions().hasResidencePermission(reqPlayer, true) && !resadmin) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("NoPermission")); return; } Player giveplayer = Residence.getServ().getPlayer(targPlayer); if (giveplayer == null || !giveplayer.isOnline()) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("NotOnline")); return; } CuboidArea[] areas = res.getAreaArray(); PermissionGroup g = Residence.getPermissionManager().getGroup(giveplayer); if (areas.length > g.getMaxPhysicalPerResidence() && !resadmin) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("ResidenceGiveLimits")); return; } if (getOwnedZoneCount(giveplayer.getName()) >= g.getMaxZones() && !resadmin) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("ResidenceGiveLimits")); return; } if (!resadmin) { for (CuboidArea area : areas) { if (!g.inLimits(area)) { reqPlayer.sendMessage("§c" + Residence.getLanguage().getPhrase("ResidenceGiveLimits")); return; } } } res.getPermissions().setOwner(giveplayer.getName(), true); reqPlayer.sendMessage( "§a" + Residence.getLanguage() .getPhrase( "ResidenceGive", "§e" + residence + "§a.§e" + giveplayer.getName() + "§a")); giveplayer.sendMessage( Residence.getLanguage() .getPhrase( "ResidenceRecieve", "§a" + reqPlayer.getName() + "§e.§a" + residence + "§e")); }
public int getOwnedZoneCount(String player) { Collection<ClaimedResidence> set = residences.values(); int count = 0; synchronized (residences) { for (ClaimedResidence res : set) { if (res.getPermissions().getOwner().equalsIgnoreCase(player)) { count++; } } } return count; }
public void addResidence( Player player, String name, Location loc1, Location loc2, boolean resadmin) { if (!Residence.validName(name)) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidNameCharacters")); return; } if (player == null) return; if (loc1 == null || loc2 == null || !loc1.getWorld().getName().equals(loc2.getWorld().getName())) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("SelectPoints")); return; } PermissionGroup group = Residence.getPermissionManager().getGroup(player); boolean createpermission = group.canCreateResidences() || Residence.getPermissionManager().hasAuthority(player, "residence.create", false); if (!createpermission && !resadmin) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("NoPermission")); return; } if (getOwnedZoneCount(player.getName()) >= group.getMaxZones() && !resadmin) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("ResidenceTooMany")); return; } CuboidArea newArea = new CuboidArea(loc1, loc2); ClaimedResidence newRes = new ClaimedResidence(player.getName(), loc1.getWorld().getName()); newRes.getPermissions().applyDefaultFlags(); newRes.setEnterMessage(group.getDefaultEnterMessage()); newRes.setLeaveMessage(group.getDefaultLeaveMessage()); ResidenceCreationEvent resevent = new ResidenceCreationEvent(player, name, newRes, newArea); Residence.getServ().getPluginManager().callEvent(resevent); if (resevent.isCancelled()) return; newArea = resevent.getPhysicalArea(); name = resevent.getResidenceName(); if (residences.containsKey(name)) { player.sendMessage( "§c" + Residence.getLanguage().getPhrase("ResidenceAlreadyExists", "§e" + name + "§c")); return; } newRes.addArea(player, newArea, "main", resadmin); if (newRes.getAreaCount() != 0) { residences.put(name, newRes); Residence.getLeaseManager().removeExpireTime(name); player.sendMessage( "§a" + Residence.getLanguage().getPhrase("ResidenceCreate", "§e" + name + "§a")); if (Residence.getConfigManager().useLeases()) Residence.getLeaseManager().setExpireTime(player, name, group.getLeaseGiveTime()); } }
public void applyListToResidence( Player player, String listname, String areaname, boolean resadmin) { FlagPermissions list = this.getList(player.getName(), listname); if (list == null) { player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidList")); return; } ClaimedResidence res = Residence.getResidenceManager().getByName(areaname); if (res == null) { player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidResidence")); return; } res.getPermissions().applyTemplate(player, list, resadmin); }
public boolean renameResidence(Player player, String oldName, String newName, boolean resadmin) { if (!Residence.validName(newName)) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidNameCharacters")); return false; } ClaimedResidence res = this.getByName(oldName); if (res == null) { if (player != null) player.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidResidence")); return false; } if (res.getPermissions().hasResidencePermission(player, true) || resadmin) { if (res.getParent() == null) { if (residences.containsKey(newName)) { if (player != null) player.sendMessage( "§c" + Residence.getLanguage() .getPhrase("ResidenceAlreadyExists", "§e" + newName + "§c")); return false; } residences.put(newName, res); residences.remove(oldName); if (Residence.getConfigManager().useLeases()) Residence.getLeaseManager().updateLeaseName(oldName, newName); if (Residence.getConfigManager().enabledRentSystem()) { Residence.getRentManager().updateRentableName(oldName, newName); } if (player != null) player.sendMessage( "§a" + Residence.getLanguage() .getPhrase("ResidenceRename", "§e" + oldName + "§a.§e" + newName + "§a")); return true; } else { String[] oldname = oldName.split("\\."); ClaimedResidence parent = res.getParent(); return parent.renameSubzone(player, oldname[oldname.length - 1], newName, resadmin); } } else { if (player != null) player.sendMessage("§c" + Residence.getLanguage().getPhrase("NoPermission")); return false; } }
public void printAreaInfo(String areaname, Player player) { ClaimedResidence res = this.getByName(areaname); if (res == null) { player.sendMessage("§c" + Residence.getLanguage().getPhrase("InvalidResidence")); return; } ResidencePermissions perms = res.getPermissions(); if (Residence.getConfigManager().enableEconomy()) player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Residence") + ":§2 " + areaname + " §eBank: §6" + res.getBank().getStoredMoney()); else player.sendMessage("§e" + Residence.getLanguage().getPhrase("Residence") + ":§2 " + areaname); if (Residence.getConfigManager().enabledRentSystem() && Residence.getRentManager().isRented(areaname)) player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Owner") + ":§c " + perms.getOwner() + "§e Rented by: §c" + Residence.getRentManager().getRentingPlayer(areaname)); else player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Owner") + ":§c " + perms.getOwner() + "§e - " + Residence.getLanguage().getPhrase("World") + ": §c" + perms.getWorld()); player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Flags") + ":§9 " + perms.listFlags()); player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Your.Flags") + ": §a" + perms.listPlayerFlags(player.getName())); player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Group.Flags") + ":§c " + perms.listGroupFlags()); player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Others.Flags") + ":§c " + perms.listOtherPlayersFlags(player.getName())); String aid = res.getAreaIDbyLoc(player.getLocation()); if (aid != null) player.sendMessage("§e" + Residence.getLanguage().getPhrase("CurrentArea") + ": §6" + aid); player.sendMessage( "§e" + Residence.getLanguage().getPhrase("Total.Size") + ":§d " + res.getTotalSize()); if (Residence.getConfigManager().useLeases() && Residence.getLeaseManager().leaseExpires(areaname)) { player.sendMessage( "§e" + Residence.getLanguage().getPhrase("LeaseExpire") + ":§a " + Residence.getLeaseManager().getExpireTime(areaname)); } }