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>()); }
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. }