Exemplo n.º 1
0
 public boolean setGroupFlag(
     Player player, String group, String flag, String flagstate, boolean resadmin) {
   group = group.toLowerCase();
   if (validFlagGroups.containsKey(flag))
     return this.setFlagGroupOnGroup(player, flag, group, flagstate, resadmin);
   FlagState state = FlagPermissions.stringToFlagState(flagstate);
   if (checkCanSetFlag(player, flag, state, false, resadmin)) {
     if (Residence.getPermissionManager().hasGroup(group)) {
       ResidenceFlagChangeEvent fc =
           new ResidenceFlagChangeEvent(
               residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group);
       Residence.getServ().getPluginManager().callEvent(fc);
       if (fc.isCancelled()) return false;
       if (super.setGroupFlag(group, flag, state)) {
         player.sendMessage(
             ChatColor.GREEN
                 + Residence.getLanguage()
                     .getPhrase("FlagSet", flag + "|" + residence.getName() + "|" + flagstate));
         return true;
       }
     } else {
       player.sendMessage(ChatColor.RED + Residence.getLanguage().getPhrase("InvalidGroup"));
       return false;
     }
   }
   return false;
 }
Exemplo n.º 2
0
  public boolean setFlag(Player player, String flag, String flagstate, boolean resadmin) {
    if (validFlagGroups.containsKey(flag))
      return this.setFlagGroup(player, flag, flagstate, resadmin);

    FlagState state = FlagPermissions.stringToFlagState(flagstate);

    if (Residence.getConfigManager().isPvPFlagPrevent()) {
      for (String oneFlag : Residence.getConfigManager().getProtectedFlagsList()) {
        if (!flag.equalsIgnoreCase(oneFlag)) continue;

        ArrayList<Player> players = this.residence.getPlayersInResidence();
        if (!resadmin
            && (players.size() > 1
                || players.size() == 1 && !players.get(0).getName().equals(this.getOwner()))) {
          int size = 0;
          for (Player one : players) {
            if (!one.getName().equals(this.getOwner())) size++;
          }
          player.sendMessage(
              ChatColor.RED
                  + Residence.getLanguage().getPhrase("FlagChangeDeny", flag + "|" + size));
          return false;
        }
      }
    }

    if (checkCanSetFlag(player, flag, state, true, resadmin)) {
      ResidenceFlagChangeEvent fc =
          new ResidenceFlagChangeEvent(
              residence, player, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null);
      Residence.getServ().getPluginManager().callEvent(fc);
      if (fc.isCancelled()) return false;
      if (super.setFlag(flag, state)) {
        player.sendMessage(
            ChatColor.GREEN
                + Residence.getLanguage()
                    .getPhrase("FlagSet", flag + "|" + residence.getName() + "|" + flagstate));
        return true;
      }
    }
    return false;
  }
Exemplo n.º 3
0
 public boolean hasResidencePermission(Player player, boolean requireOwner) {
   if (Residence.getConfigManager().enabledRentSystem()) {
     String resname = residence.getName();
     if (Residence.getRentManager().isRented(resname)) {
       if (requireOwner) {
         return false;
       }
       String renter = Residence.getRentManager().getRentingPlayer(resname);
       if (player.getName().equalsIgnoreCase(renter)) {
         return true;
       } else {
         return (playerHas(player.getName(), "admin", false));
       }
     }
   }
   if (requireOwner) {
     return (this.getOwner().equalsIgnoreCase(player.getName()));
   }
   return (playerHas(player.getName(), "admin", false)
       || this.getOwner().equalsIgnoreCase(player.getName()));
 }
Exemplo n.º 4
0
  public boolean setPlayerFlag(
      Player player,
      String targetPlayer,
      String flag,
      String flagstate,
      boolean resadmin,
      boolean Show) {

    if (Residence.getPlayerUUID(targetPlayer) == null) {
      player.sendMessage("no player by this name");
      return false;
    }

    if (validFlagGroups.containsKey(flag))
      return this.setFlagGroupOnPlayer(player, targetPlayer, flag, flagstate, resadmin);
    FlagState state = FlagPermissions.stringToFlagState(flagstate);
    if (checkCanSetFlag(player, flag, state, false, resadmin)) {
      ResidenceFlagChangeEvent fc =
          new ResidenceFlagChangeEvent(
              residence,
              player,
              flag,
              ResidenceFlagChangeEvent.FlagType.PLAYER,
              state,
              targetPlayer);
      Residence.getServ().getPluginManager().callEvent(fc);
      if (fc.isCancelled()) return false;
      if (super.setPlayerFlag(targetPlayer, flag, state)) {
        if (Show)
          player.sendMessage(
              ChatColor.GREEN
                  + Residence.getLanguage()
                      .getPhrase("FlagSet", flag + "|" + residence.getName() + "|" + flagstate));
        return true;
      }
    }
    return false;
  }