Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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"));
   }
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 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"));
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
  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());
    }
  }
Exemplo n.º 8
0
 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);
 }
Exemplo n.º 9
0
 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;
   }
 }
Exemplo n.º 10
0
 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));
   }
 }