Example #1
0
public class UConf extends Entity<UConf> {
  // -------------------------------------------- //
  // META
  // -------------------------------------------- //

  public static UConf get(Object oid) {
    return UConfColls.get().get2(oid);
  }

  // -------------------------------------------- //
  // CORE
  // -------------------------------------------- //

  public boolean canLeaveWithNegativePower = true;

  public int factionMemberLimit = 0;
  public double factionPowerMax = 1000.0;

  public int factionTagLengthMin = 3;
  public int factionTagLengthMax = 10;
  public boolean factionTagForceUpperCase = false;

  // -------------------------------------------- //
  // DEFAULTS
  // -------------------------------------------- //

  // TODO: should I add a nofaction id here?
  // And perhaps for safezone and warzone as well.

  public String defaultPlayerFactionId = Const.FACTIONID_NONE;
  public double defaultPlayerPower = 0.0;
  public Rel defaultPlayerRole = Rel.RECRUIT;

  public boolean defaultFactionOpen = false;
  public Map<FFlag, Boolean> defaultFactionFlags = FFlag.getDefaultDefaults();
  public Map<FPerm, Set<Rel>> defaultFactionPerms = FPerm.getDefaultDefaults();

  // -------------------------------------------- //
  // POWER
  // -------------------------------------------- //

  public double powerMax = 10.0;
  public double powerMin = 0.0;
  public double powerPerHour = 2.0;
  public double powerPerDeath = -2.0;

  // -------------------------------------------- //
  // HOMES
  // -------------------------------------------- //

  public boolean homesEnabled = true;
  public boolean homesMustBeInClaimedTerritory = true;
  public boolean homesTeleportCommandEnabled = true;
  public boolean homesTeleportAllowedFromEnemyTerritory = true;
  public boolean homesTeleportAllowedFromDifferentWorld = true;
  public double homesTeleportAllowedEnemyDistance = 32.0;
  public boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;

  // -------------------------------------------- //
  // DENY COMMANDS
  // -------------------------------------------- //

  // commands which will be prevented if the player is a member of a permanent faction
  public List<String> denyCommandsPermanentFactionMember = new ArrayList<String>();

  // commands which will be prevented when in claimed territory of another faction
  public Map<Rel, List<String>> denyCommandsTerritoryRelation =
      MUtil.map(
          Rel.ENEMY, MUtil.list("home", "sethome", "spawn", "tpahere", "tpaccept", "tpa", "warp"),
          Rel.NEUTRAL, new ArrayList<String>(),
          Rel.TRUCE, new ArrayList<String>(),
          Rel.ALLY, new ArrayList<String>(),
          Rel.MEMBER, new ArrayList<String>());
}
Example #2
0
public class UConf extends Entity<UConf> {
  // -------------------------------------------- //
  // META
  // -------------------------------------------- //

  public static UConf get(Object oid) {
    return UConfColls.get().get2(oid);
  }

  // -------------------------------------------- //
  // UNIVERSE ENABLE SWITCH
  // -------------------------------------------- //

  public boolean enabled = true;

  public static boolean isDisabled(Object universe) {
    return isDisabled(universe, null);
  }

  public static String getDisabledMessage(Object universe) {
    UConf uconf = UConf.get(universe);
    return Txt.parse("<i>Factions are disabled in the <h>%s <i>universe.", uconf.getUniverse());
  }

  public static boolean isDisabled(Object universe, Object inform) {
    UConf uconf = UConf.get(universe);
    if (uconf.enabled) return false;

    if (inform instanceof CommandSender) {
      ((CommandSender) inform).sendMessage(getDisabledMessage(universe));
    } else if (inform instanceof SenderEntity) {
      ((SenderEntity<?>) inform).sendMessage(getDisabledMessage(universe));
    }

    return true;
  }

  // -------------------------------------------- //
  // SPECIAL FACTION IDS
  // -------------------------------------------- //

  public String factionIdNone = UUID.randomUUID().toString();
  public String factionIdSafezone = UUID.randomUUID().toString();
  public String factionIdWarzone = UUID.randomUUID().toString();

  // -------------------------------------------- //
  // DEFAULTS
  // -------------------------------------------- //

  public String defaultPlayerFactionId = this.factionIdNone;
  public Rel defaultPlayerRole = Rel.RECRUIT;
  public double defaultPlayerPower = 0.0;

  public boolean defaultFactionOpen = false;
  public Map<FFlag, Boolean> defaultFactionFlags = FFlag.getDefaultDefaults();
  public Map<FPerm, Set<Rel>> defaultFactionPerms = FPerm.getDefaultDefaults();

  // -------------------------------------------- //
  // MESSAGES
  // -------------------------------------------- //

  public boolean broadcastNameChange = false;

  // -------------------------------------------- //
  // POWER
  // -------------------------------------------- //

  public double powerMax = 10.0;
  public double powerMin = 0.0;
  public double powerPerHour = 2.0;
  public double powerPerDeath = -2.0;

  public boolean canLeaveWithNegativePower = true;

  // -------------------------------------------- //
  // CORE
  // -------------------------------------------- //

  public int factionMemberLimit = 0;
  public double factionPowerMax = 0.0;

  public int factionNameLengthMin = 3;
  public int factionNameLengthMax = 16;
  public boolean factionNameForceUpperCase = false;

  // -------------------------------------------- //
  // CLAIMS
  // -------------------------------------------- //

  public boolean claimsMustBeConnected = true;
  public boolean claimingFromOthersAllowed = true;
  public boolean claimsCanBeUnconnectedIfOwnedByOtherFaction = false;
  public int claimsRequireMinFactionMembers = 1;
  public int claimedLandsMax = 0;

  // -------------------------------------------- //
  // HOMES
  // -------------------------------------------- //

  public boolean homesEnabled = true;
  public boolean homesMustBeInClaimedTerritory = true;
  public boolean homesTeleportCommandEnabled = true;
  public boolean homesTeleportAllowedFromEnemyTerritory = true;
  public boolean homesTeleportAllowedFromDifferentWorld = true;
  public double homesTeleportAllowedEnemyDistance = 32.0;
  public boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;

  public boolean homesTeleportToOnDeathActive = false;
  public EventPriority homesTeleportToOnDeathPriority = EventPriority.NORMAL;

  // -------------------------------------------- //
  // ASSORTED
  // -------------------------------------------- //

  public boolean permanentFactionsDisableLeaderPromotion = false;
  public double actionDeniedPainAmount = 2.0D;
  public boolean disablePVPForFactionlessPlayers = false;
  public boolean enablePVPAgainstFactionlessInAttackersLand = false;
  public double territoryShieldFactor = 0.3D;

  // -------------------------------------------- //
  // DENY COMMANDS
  // -------------------------------------------- //

  // commands which will be prevented if the player is a member of a permanent faction
  public List<String> denyCommandsPermanentFactionMember = new ArrayList<String>();

  // commands which will be prevented when in claimed territory of another faction
  public Map<Rel, List<String>> denyCommandsTerritoryRelation =
      MUtil.map(
          Rel.ENEMY,
              MUtil.list(
                  // Essentials commands
                  "home",
                  "homes",
                  "sethome",
                  "createhome",
                  "tpahere",
                  "tpaccept",
                  "tpyes",
                  "tpa",
                  "call",
                  "tpask",
                  "warp",
                  "warps",
                  "spawn",
                  // Essentials e-alliases
                  "ehome",
                  "ehomes",
                  "esethome",
                  "ecreatehome",
                  "etpahere",
                  "etpaccept",
                  "etpyes",
                  "etpa",
                  "ecall",
                  "etpask",
                  "ewarp",
                  "ewarps",
                  "espawn",
                  // Essentials fallback alliases
                  "essentials:home",
                  "essentials:homes",
                  "essentials:sethome",
                  "essentials:createhome",
                  "essentials:tpahere",
                  "essentials:tpaccept",
                  "essentials:tpyes",
                  "essentials:tpa",
                  "essentials:call",
                  "essentials:tpask",
                  "essentials:warp",
                  "essentials:warps",
                  "essentials:spawn",
                  // Other plugins
                  "wtp",
                  "uspawn",
                  "utp",
                  "mspawn",
                  "mtp",
                  "fspawn",
                  "ftp",
                  "jspawn",
                  "jtp"),
          Rel.NEUTRAL, new ArrayList<String>(),
          Rel.TRUCE, new ArrayList<String>(),
          Rel.ALLY, new ArrayList<String>(),
          Rel.MEMBER, new ArrayList<String>());

  // -------------------------------------------- //
  // INTEGRATION: LWC
  // -------------------------------------------- //

  public Map<EventFactionsChunkChangeType, Boolean> lwcRemoveOnChange =
      MUtil.map(
          EventFactionsChunkChangeType.BUY, false,
          EventFactionsChunkChangeType.SELL, false,
          EventFactionsChunkChangeType.CONQUER, false,
          EventFactionsChunkChangeType.PILLAGE, false);

  // -------------------------------------------- //
  // INTEGRATION: ECONOMY
  // -------------------------------------------- //

  public boolean econEnabled = false;

  // TODO: Rename to include unit.
  public double econLandReward = 0.00;

  public String econUniverseAccount = "";

  public Map<EventFactionsChunkChangeType, Double> econChunkCost =
      MUtil.map(
          EventFactionsChunkChangeType.BUY, 30.0,
          EventFactionsChunkChangeType.SELL, -20.0,
          EventFactionsChunkChangeType.CONQUER, -10.0,
          EventFactionsChunkChangeType.PILLAGE, -10.0);

  public double econCostCreate = 200.0;
  public double econCostSethome = 0.0;
  public double econCostJoin = 0.0;
  public double econCostLeave = 0.0;
  public double econCostKick = 0.0;
  public double econCostInvite = 0.0;
  public double econCostDeinvite = 0.0;
  public double econCostHome = 0.0;
  public double econCostName = 0.0;
  public double econCostDescription = 0.0;
  public double econCostTitle = 0.0;
  public double econCostOpen = 0.0;

  public Map<Rel, Double> econRelCost =
      MUtil.map(
          Rel.ENEMY, 0.0,
          Rel.ALLY, 0.0,
          Rel.TRUCE, 0.0,
          Rel.NEUTRAL, 0.0);

  // Faction banks, to pay for land claiming and other costs instead of individuals paying for them
  public boolean bankEnabled = true;
  // public static boolean bankMembersCanWithdraw = false; //Have to be at least moderator to
  // withdraw or pay money to another faction
  public boolean bankFactionPaysCosts =
      true; // The faction pays for faction command costs, such as sethome
  public boolean bankFactionPaysLandCosts = true; // The faction pays for land claiming costs.
}