Showing Dropping Anvil Something (Ignore)
This commit is contained in:
parent
2a1a8db554
commit
e7db7170d1
@ -9,82 +9,82 @@ import java.util.Set;
|
||||
|
||||
|
||||
public abstract class Board {
|
||||
protected static Board instance = getBoardImpl();
|
||||
protected static Board instance = getBoardImpl();
|
||||
|
||||
private static Board getBoardImpl() {
|
||||
switch (Conf.backEnd) {
|
||||
case JSON:
|
||||
return new JSONBoard();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static Board getBoardImpl() {
|
||||
switch (Conf.backEnd) {
|
||||
case JSON:
|
||||
return new JSONBoard();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Board getInstance() {
|
||||
return instance;
|
||||
}
|
||||
public static Board getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Get and Set
|
||||
//----------------------------------------------//
|
||||
public abstract String getIdAt(FLocation flocation);
|
||||
//----------------------------------------------//
|
||||
// Get and Set
|
||||
//----------------------------------------------//
|
||||
public abstract String getIdAt(FLocation flocation);
|
||||
|
||||
public abstract Faction getFactionAt(FLocation flocation);
|
||||
public abstract Faction getFactionAt(FLocation flocation);
|
||||
|
||||
public abstract void setIdAt(String id, FLocation flocation);
|
||||
public abstract void setIdAt(String id, FLocation flocation);
|
||||
|
||||
public abstract void setFactionAt(Faction faction, FLocation flocation);
|
||||
public abstract void setFactionAt(Faction faction, FLocation flocation);
|
||||
|
||||
public abstract void removeAt(FLocation flocation);
|
||||
public abstract void removeAt(FLocation flocation);
|
||||
|
||||
public abstract Set<FLocation> getAllClaims(String factionId);
|
||||
public abstract Set<FLocation> getAllClaims(String factionId);
|
||||
|
||||
public abstract Set<FLocation> getAllClaims(Faction faction);
|
||||
public abstract Set<FLocation> getAllClaims(Faction faction);
|
||||
|
||||
// not to be confused with claims, ownership referring to further member-specific ownership of a claim
|
||||
public abstract void clearOwnershipAt(FLocation flocation);
|
||||
// not to be confused with claims, ownership referring to further member-specific ownership of a claim
|
||||
public abstract void clearOwnershipAt(FLocation flocation);
|
||||
|
||||
public abstract void unclaimAll(String factionId);
|
||||
public abstract void unclaimAll(String factionId);
|
||||
|
||||
public abstract void unclaimAllInWorld(String factionId, World world);
|
||||
public abstract void unclaimAllInWorld(String factionId, World world);
|
||||
|
||||
// Is this coord NOT completely surrounded by coords claimed by the same faction?
|
||||
// Simpler: Is there any nearby coord with a faction other than the faction here?
|
||||
public abstract boolean isBorderLocation(FLocation flocation);
|
||||
// Is this coord NOT completely surrounded by coords claimed by the same faction?
|
||||
// Simpler: Is there any nearby coord with a faction other than the faction here?
|
||||
public abstract boolean isBorderLocation(FLocation flocation);
|
||||
|
||||
// Is this coord connected to any coord claimed by the specified faction?
|
||||
public abstract boolean isConnectedLocation(FLocation flocation, Faction faction);
|
||||
// Is this coord connected to any coord claimed by the specified faction?
|
||||
public abstract boolean isConnectedLocation(FLocation flocation, Faction faction);
|
||||
|
||||
public abstract boolean hasFactionWithin(FLocation flocation, Faction faction, int radius);
|
||||
public abstract boolean hasFactionWithin(FLocation flocation, Faction faction, int radius);
|
||||
|
||||
//----------------------------------------------//
|
||||
// Cleaner. Remove orphaned foreign keys
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Cleaner. Remove orphaned foreign keys
|
||||
//----------------------------------------------//
|
||||
|
||||
public abstract void clean();
|
||||
public abstract void clean();
|
||||
|
||||
//----------------------------------------------//
|
||||
// Coord count
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Coord count
|
||||
//----------------------------------------------//
|
||||
|
||||
public abstract int getFactionCoordCount(String factionId);
|
||||
public abstract int getFactionCoordCount(String factionId);
|
||||
|
||||
public abstract int getFactionCoordCount(Faction faction);
|
||||
public abstract int getFactionCoordCount(Faction faction);
|
||||
|
||||
public abstract int getFactionCoordCountInWorld(Faction faction, String worldName);
|
||||
public abstract int getFactionCoordCountInWorld(Faction faction, String worldName);
|
||||
|
||||
//----------------------------------------------//
|
||||
// Map generation
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Map generation
|
||||
//----------------------------------------------//
|
||||
|
||||
/*
|
||||
* The map is relative to a coord and a faction north is in the direction of decreasing x east is in the direction
|
||||
* of decreasing z
|
||||
*/
|
||||
public abstract List<FancyMessage> getMap(FPlayer fPlayer, FLocation flocation, double inDegrees);
|
||||
/*
|
||||
* The map is relative to a coord and a faction north is in the direction of decreasing x east is in the direction
|
||||
* of decreasing z
|
||||
*/
|
||||
public abstract List<FancyMessage> getMap(FPlayer fPlayer, FLocation flocation, double inDegrees);
|
||||
|
||||
public abstract void forceSave();
|
||||
public abstract void forceSave();
|
||||
|
||||
public abstract void forceSave(boolean sync);
|
||||
public abstract void forceSave(boolean sync);
|
||||
|
||||
public abstract boolean load();
|
||||
public abstract boolean load();
|
||||
}
|
||||
|
@ -13,430 +13,430 @@ import java.util.*;
|
||||
|
||||
public class Conf {
|
||||
|
||||
// Region Style
|
||||
public static final transient String DYNMAP_STYLE_LINE_COLOR = "#00FF00";
|
||||
public static final transient double DYNMAP_STYLE_LINE_OPACITY = 0.8D;
|
||||
public static final transient int DYNMAP_STYLE_LINE_WEIGHT = 3;
|
||||
public static final transient String DYNMAP_STYLE_FILL_COLOR = "#00FF00";
|
||||
public static final transient double DYNMAP_STYLE_FILL_OPACITY = 0.35D;
|
||||
public static final transient String DYNMAP_STYLE_HOME_MARKER = "greenflag";
|
||||
public static final transient boolean DYNMAP_STYLE_BOOST = false;
|
||||
public static List<String> baseCommandAliases = new ArrayList<>();
|
||||
public static boolean allowNoSlashCommand = true;
|
||||
// Region Style
|
||||
public static final transient String DYNMAP_STYLE_LINE_COLOR = "#00FF00";
|
||||
public static final transient double DYNMAP_STYLE_LINE_OPACITY = 0.8D;
|
||||
public static final transient int DYNMAP_STYLE_LINE_WEIGHT = 3;
|
||||
public static final transient String DYNMAP_STYLE_FILL_COLOR = "#00FF00";
|
||||
public static final transient double DYNMAP_STYLE_FILL_OPACITY = 0.35D;
|
||||
public static final transient String DYNMAP_STYLE_HOME_MARKER = "greenflag";
|
||||
public static final transient boolean DYNMAP_STYLE_BOOST = false;
|
||||
public static List<String> baseCommandAliases = new ArrayList<>();
|
||||
public static boolean allowNoSlashCommand = true;
|
||||
|
||||
// Colors
|
||||
public static ChatColor colorMember = ChatColor.GREEN;
|
||||
public static ChatColor colorAlly = ChatColor.LIGHT_PURPLE;
|
||||
public static ChatColor colorTruce = ChatColor.DARK_PURPLE;
|
||||
public static ChatColor colorNeutral = ChatColor.WHITE;
|
||||
public static ChatColor colorEnemy = ChatColor.RED;
|
||||
public static ChatColor colorPeaceful = ChatColor.GOLD;
|
||||
public static ChatColor colorWilderness = ChatColor.GRAY;
|
||||
public static ChatColor colorSafezone = ChatColor.GOLD;
|
||||
public static ChatColor colorWar = ChatColor.DARK_RED;
|
||||
// Power
|
||||
public static double powerPlayerMax = 10.0;
|
||||
public static double powerPlayerMin = -10.0;
|
||||
public static double powerPlayerStarting = 0.0;
|
||||
public static double powerPerMinute = 0.2; // Default health rate... it takes 5 min to heal one power
|
||||
public static double powerPerDeath = 4.0; // A death makes you lose 4 power
|
||||
public static boolean powerRegenOffline = false; // does player power regenerate even while they're offline?
|
||||
public static double powerOfflineLossPerDay = 0.0; // players will lose this much power per day offline
|
||||
public static double powerOfflineLossLimit = 0.0; // players will no longer lose power from being offline once their power drops to this amount or less
|
||||
public static double powerFactionMax = 0.0; // if greater than 0, the cap on how much power a faction can have (additional power from players beyond that will act as a "buffer" of sorts)
|
||||
public static String prefixLeader = "***";
|
||||
public static String prefixCoLeader = "**";
|
||||
public static String prefixMod = "*";
|
||||
public static String prefixRecruit = "-";
|
||||
public static String prefixNormal = "+";
|
||||
public static int factionTagLengthMin = 3;
|
||||
public static int factionTagLengthMax = 10;
|
||||
public static boolean factionTagForceUpperCase = false;
|
||||
public static boolean newFactionsDefaultOpen = false;
|
||||
// when faction membership hits this limit, players will no longer be able to join using /f join; default is 0, no limit
|
||||
public static int factionMemberLimit = 0;
|
||||
public static int factionAltMemberLimit = 0;
|
||||
// what faction ID to start new players in when they first join the server; default is 0, "no faction"
|
||||
public static String newPlayerStartingFactionID = "0";
|
||||
public static boolean showMapFactionKey = true;
|
||||
public static boolean showNeutralFactionsOnMap = true;
|
||||
public static boolean showEnemyFactionsOnMap = true;
|
||||
public static boolean showTrucesFactionsOnMap = true;
|
||||
// Disallow joining/leaving/kicking while power is negative
|
||||
public static boolean canLeaveWithNegativePower = true;
|
||||
// Configuration for faction-only chat
|
||||
public static boolean factionOnlyChat = true;
|
||||
// Configuration on the Faction tag in chat messages.
|
||||
public static boolean chatTagEnabled = true;
|
||||
public static transient boolean chatTagHandledByAnotherPlugin = false;
|
||||
public static boolean chatTagRelationColored = true;
|
||||
public static String chatTagReplaceString = "[FACTION]";
|
||||
public static String chatTagInsertAfterString = "";
|
||||
public static String chatTagInsertBeforeString = "";
|
||||
public static int chatTagInsertIndex = 0;
|
||||
public static boolean chatTagPadBefore = false;
|
||||
public static boolean chatTagPadAfter = true;
|
||||
public static String chatTagFormat = "%s" + ChatColor.WHITE;
|
||||
public static String factionChatFormat = "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String allianceChatFormat = ChatColor.LIGHT_PURPLE + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String truceChatFormat = ChatColor.DARK_PURPLE + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String modChatFormat = ChatColor.RED + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static int stealthFlyCheckRadius = 32;
|
||||
public static int factionBufferSize = 20;
|
||||
public static boolean useCheckSystem = true;
|
||||
public static boolean gracePeriod = false;
|
||||
public static boolean noEnderpearlsInFly = false;
|
||||
public static boolean broadcastDescriptionChanges = false;
|
||||
public static boolean broadcastTagChanges = false;
|
||||
public static double saveToFileEveryXMinutes = 30.0;
|
||||
public static double autoLeaveAfterDaysOfInactivity = 10.0;
|
||||
public static double autoLeaveRoutineRunsEveryXMinutes = 5.0;
|
||||
public static int autoLeaveRoutineMaxMillisecondsPerTick = 5; // 1 server tick is roughly 50ms, so default max 10% of a tick
|
||||
public static boolean removePlayerDataWhenBanned = true;
|
||||
public static boolean autoLeaveDeleteFPlayerData = true; // Let them just remove player from Faction.
|
||||
public static boolean worldGuardChecking = false;
|
||||
public static boolean worldGuardBuildPriority = false;
|
||||
// server logging options
|
||||
public static boolean logFactionCreate = true;
|
||||
public static boolean logFactionDisband = true;
|
||||
public static boolean logFactionJoin = true;
|
||||
public static boolean logFactionKick = true;
|
||||
public static boolean logFactionLeave = true;
|
||||
public static boolean logLandClaims = true;
|
||||
public static boolean logLandUnclaims = true;
|
||||
public static boolean logMoneyTransactions = true;
|
||||
public static boolean logPlayerCommands = true;
|
||||
// prevent some potential exploits
|
||||
public static boolean handleExploitObsidianGenerators = true;
|
||||
public static boolean handleExploitEnderPearlClipping = true;
|
||||
public static boolean handleExploitInteractionSpam = true;
|
||||
public static boolean handleExploitTNTWaterlog = false;
|
||||
public static boolean handleExploitLiquidFlow = false;
|
||||
public static boolean homesEnabled = true;
|
||||
public static boolean homesMustBeInClaimedTerritory = true;
|
||||
public static boolean homesTeleportToOnDeath = true;
|
||||
public static boolean homesRespawnFromNoPowerLossWorlds = true;
|
||||
public static boolean homesTeleportCommandEnabled = true;
|
||||
public static boolean homesTeleportCommandEssentialsIntegration = true;
|
||||
public static boolean homesTeleportCommandSmokeEffectEnabled = true;
|
||||
public static float homesTeleportCommandSmokeEffectThickness = 3f;
|
||||
public static boolean homesTeleportAllowedFromEnemyTerritory = true;
|
||||
public static boolean homesTeleportAllowedFromDifferentWorld = true;
|
||||
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
||||
public static boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;
|
||||
public static boolean disablePVPBetweenNeutralFactions = false;
|
||||
public static boolean disablePVPForFactionlessPlayers = false;
|
||||
public static boolean enablePVPAgainstFactionlessInAttackersLand = false;
|
||||
public static int noPVPDamageToOthersForXSecondsAfterLogin = 3;
|
||||
public static boolean peacefulTerritoryDisablePVP = true;
|
||||
public static boolean peacefulTerritoryDisableMonsters = false;
|
||||
public static boolean peacefulTerritoryDisableBoom = false;
|
||||
public static boolean peacefulMembersDisablePowerLoss = true;
|
||||
public static boolean permanentFactionsDisableLeaderPromotion = false;
|
||||
public static boolean claimsMustBeConnected = false;
|
||||
public static boolean claimsCanBeUnconnectedIfOwnedByOtherFaction = true;
|
||||
public static int claimsRequireMinFactionMembers = 1;
|
||||
public static int claimedLandsMax = 0;
|
||||
public static int lineClaimLimit = 5;
|
||||
// if someone is doing a radius claim and the process fails to claim land this many times in a row, it will exit
|
||||
public static int radiusClaimFailureLimit = 9;
|
||||
public static double considerFactionsReallyOfflineAfterXMinutes = 0.0;
|
||||
public static int actionDeniedPainAmount = 1;
|
||||
// commands which will be prevented if the player is a member of a permanent faction
|
||||
public static Set<String> permanentFactionMemberDenyCommands = new LinkedHashSet<>();
|
||||
// commands which will be prevented when in claimed territory of another faction
|
||||
public static Set<String> territoryNeutralDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> territoryEnemyDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> territoryAllyDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> warzoneDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> wildernessDenyCommands = new LinkedHashSet<>();
|
||||
public static boolean territoryDenyBuild = true;
|
||||
public static boolean territoryDenyBuildWhenOffline = true;
|
||||
public static boolean territoryPainBuild = false;
|
||||
public static boolean territoryPainBuildWhenOffline = false;
|
||||
public static boolean territoryDenyUseage = true;
|
||||
public static boolean territoryEnemyDenyBuild = true;
|
||||
public static boolean territoryEnemyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryEnemyPainBuild = false;
|
||||
public static boolean territoryEnemyPainBuildWhenOffline = false;
|
||||
public static boolean territoryEnemyDenyUseage = true;
|
||||
public static boolean territoryAllyDenyBuild = true;
|
||||
public static boolean territoryAllyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryAllyPainBuild = false;
|
||||
public static boolean territoryAllyPainBuildWhenOffline = false;
|
||||
public static boolean territoryAllyDenyUseage = true;
|
||||
public static boolean territoryTruceDenyBuild = true;
|
||||
public static boolean territoryTruceDenyBuildWhenOffline = true;
|
||||
public static boolean territoryTrucePainBuild = false;
|
||||
public static boolean territoryTrucePainBuildWhenOffline = false;
|
||||
public static boolean territoryTruceDenyUseage = true;
|
||||
public static boolean territoryBlockCreepers = false;
|
||||
public static boolean territoryBlockCreepersWhenOffline = false;
|
||||
public static boolean territoryBlockFireballs = false;
|
||||
public static boolean territoryBlockFireballsWhenOffline = false;
|
||||
public static boolean territoryBlockTNT = false;
|
||||
public static boolean territoryBlockTNTWhenOffline = false;
|
||||
public static boolean territoryDenyEndermanBlocks = true;
|
||||
public static boolean territoryDenyEndermanBlocksWhenOffline = true;
|
||||
public static boolean safeZoneDenyBuild = true;
|
||||
public static boolean safeZoneDenyUseage = true;
|
||||
public static boolean safeZoneBlockTNT = true;
|
||||
public static boolean safeZonePreventAllDamageToPlayers = false;
|
||||
public static boolean safeZoneDenyEndermanBlocks = true;
|
||||
public static boolean warZoneDenyBuild = true;
|
||||
public static boolean warZoneDenyUseage = true;
|
||||
public static boolean warZoneBlockCreepers = false;
|
||||
public static boolean warZoneBlockFireballs = false;
|
||||
public static boolean warZoneBlockTNT = true;
|
||||
public static boolean warZonePowerLoss = true;
|
||||
public static boolean warZoneFriendlyFire = false;
|
||||
public static boolean warZoneDenyEndermanBlocks = true;
|
||||
public static boolean wildernessDenyBuild = false;
|
||||
public static boolean wildernessDenyUseage = false;
|
||||
public static boolean wildernessBlockCreepers = false;
|
||||
public static boolean wildernessBlockFireballs = false;
|
||||
public static boolean wildernessBlockTNT = false;
|
||||
public static boolean wildernessPowerLoss = true;
|
||||
public static boolean wildernessDenyEndermanBlocks = false;
|
||||
// for claimed areas where further faction-member ownership can be defined
|
||||
public static boolean ownedAreasEnabled = true;
|
||||
public static int ownedAreasLimitPerFaction = 0;
|
||||
public static boolean ownedAreasModeratorsCanSet = false;
|
||||
public static boolean ownedAreaModeratorsBypass = true;
|
||||
public static boolean ownedAreaDenyBuild = true;
|
||||
public static boolean ownedAreaPainBuild = false;
|
||||
public static boolean ownedMessageOnBorder = true;
|
||||
public static boolean ownedMessageInsideTerritory = true;
|
||||
public static boolean ownedMessageByChunk = false;
|
||||
public static boolean pistonProtectionThroughDenyBuild = true;
|
||||
public static Set<Material> territoryProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryProtectedMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static transient Set<EntityType> safeZoneNerfedCreatureTypes = EnumSet.noneOf(EntityType.class);
|
||||
/// <summary>
|
||||
/// This defines a set of materials which should always be allowed to use, regardless of factions permissions.
|
||||
/// Useful for HCF features.
|
||||
/// </summary>
|
||||
public static Set<Material> territoryBypassProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||
// Colors
|
||||
public static ChatColor colorMember = ChatColor.GREEN;
|
||||
public static ChatColor colorAlly = ChatColor.LIGHT_PURPLE;
|
||||
public static ChatColor colorTruce = ChatColor.DARK_PURPLE;
|
||||
public static ChatColor colorNeutral = ChatColor.WHITE;
|
||||
public static ChatColor colorEnemy = ChatColor.RED;
|
||||
public static ChatColor colorPeaceful = ChatColor.GOLD;
|
||||
public static ChatColor colorWilderness = ChatColor.GRAY;
|
||||
public static ChatColor colorSafezone = ChatColor.GOLD;
|
||||
public static ChatColor colorWar = ChatColor.DARK_RED;
|
||||
// Power
|
||||
public static double powerPlayerMax = 10.0;
|
||||
public static double powerPlayerMin = -10.0;
|
||||
public static double powerPlayerStarting = 0.0;
|
||||
public static double powerPerMinute = 0.2; // Default health rate... it takes 5 min to heal one power
|
||||
public static double powerPerDeath = 4.0; // A death makes you lose 4 power
|
||||
public static boolean powerRegenOffline = false; // does player power regenerate even while they're offline?
|
||||
public static double powerOfflineLossPerDay = 0.0; // players will lose this much power per day offline
|
||||
public static double powerOfflineLossLimit = 0.0; // players will no longer lose power from being offline once their power drops to this amount or less
|
||||
public static double powerFactionMax = 0.0; // if greater than 0, the cap on how much power a faction can have (additional power from players beyond that will act as a "buffer" of sorts)
|
||||
public static String prefixLeader = "***";
|
||||
public static String prefixCoLeader = "**";
|
||||
public static String prefixMod = "*";
|
||||
public static String prefixRecruit = "-";
|
||||
public static String prefixNormal = "+";
|
||||
public static int factionTagLengthMin = 3;
|
||||
public static int factionTagLengthMax = 10;
|
||||
public static boolean factionTagForceUpperCase = false;
|
||||
public static boolean newFactionsDefaultOpen = false;
|
||||
// when faction membership hits this limit, players will no longer be able to join using /f join; default is 0, no limit
|
||||
public static int factionMemberLimit = 0;
|
||||
public static int factionAltMemberLimit = 0;
|
||||
// what faction ID to start new players in when they first join the server; default is 0, "no faction"
|
||||
public static String newPlayerStartingFactionID = "0";
|
||||
public static boolean showMapFactionKey = true;
|
||||
public static boolean showNeutralFactionsOnMap = true;
|
||||
public static boolean showEnemyFactionsOnMap = true;
|
||||
public static boolean showTrucesFactionsOnMap = true;
|
||||
// Disallow joining/leaving/kicking while power is negative
|
||||
public static boolean canLeaveWithNegativePower = true;
|
||||
// Configuration for faction-only chat
|
||||
public static boolean factionOnlyChat = true;
|
||||
// Configuration on the Faction tag in chat messages.
|
||||
public static boolean chatTagEnabled = true;
|
||||
public static transient boolean chatTagHandledByAnotherPlugin = false;
|
||||
public static boolean chatTagRelationColored = true;
|
||||
public static String chatTagReplaceString = "[FACTION]";
|
||||
public static String chatTagInsertAfterString = "";
|
||||
public static String chatTagInsertBeforeString = "";
|
||||
public static int chatTagInsertIndex = 0;
|
||||
public static boolean chatTagPadBefore = false;
|
||||
public static boolean chatTagPadAfter = true;
|
||||
public static String chatTagFormat = "%s" + ChatColor.WHITE;
|
||||
public static String factionChatFormat = "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String allianceChatFormat = ChatColor.LIGHT_PURPLE + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String truceChatFormat = ChatColor.DARK_PURPLE + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static String modChatFormat = ChatColor.RED + "%s:" + ChatColor.WHITE + " %s";
|
||||
public static int stealthFlyCheckRadius = 32;
|
||||
public static int factionBufferSize = 20;
|
||||
public static boolean useCheckSystem = true;
|
||||
public static boolean gracePeriod = false;
|
||||
public static boolean noEnderpearlsInFly = false;
|
||||
public static boolean broadcastDescriptionChanges = false;
|
||||
public static boolean broadcastTagChanges = false;
|
||||
public static double saveToFileEveryXMinutes = 30.0;
|
||||
public static double autoLeaveAfterDaysOfInactivity = 10.0;
|
||||
public static double autoLeaveRoutineRunsEveryXMinutes = 5.0;
|
||||
public static int autoLeaveRoutineMaxMillisecondsPerTick = 5; // 1 server tick is roughly 50ms, so default max 10% of a tick
|
||||
public static boolean removePlayerDataWhenBanned = true;
|
||||
public static boolean autoLeaveDeleteFPlayerData = true; // Let them just remove player from Faction.
|
||||
public static boolean worldGuardChecking = false;
|
||||
public static boolean worldGuardBuildPriority = false;
|
||||
// server logging options
|
||||
public static boolean logFactionCreate = true;
|
||||
public static boolean logFactionDisband = true;
|
||||
public static boolean logFactionJoin = true;
|
||||
public static boolean logFactionKick = true;
|
||||
public static boolean logFactionLeave = true;
|
||||
public static boolean logLandClaims = true;
|
||||
public static boolean logLandUnclaims = true;
|
||||
public static boolean logMoneyTransactions = true;
|
||||
public static boolean logPlayerCommands = true;
|
||||
// prevent some potential exploits
|
||||
public static boolean handleExploitObsidianGenerators = true;
|
||||
public static boolean handleExploitEnderPearlClipping = true;
|
||||
public static boolean handleExploitInteractionSpam = true;
|
||||
public static boolean handleExploitTNTWaterlog = false;
|
||||
public static boolean handleExploitLiquidFlow = false;
|
||||
public static boolean homesEnabled = true;
|
||||
public static boolean homesMustBeInClaimedTerritory = true;
|
||||
public static boolean homesTeleportToOnDeath = true;
|
||||
public static boolean homesRespawnFromNoPowerLossWorlds = true;
|
||||
public static boolean homesTeleportCommandEnabled = true;
|
||||
public static boolean homesTeleportCommandEssentialsIntegration = true;
|
||||
public static boolean homesTeleportCommandSmokeEffectEnabled = true;
|
||||
public static float homesTeleportCommandSmokeEffectThickness = 3f;
|
||||
public static boolean homesTeleportAllowedFromEnemyTerritory = true;
|
||||
public static boolean homesTeleportAllowedFromDifferentWorld = true;
|
||||
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
||||
public static boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;
|
||||
public static boolean disablePVPBetweenNeutralFactions = false;
|
||||
public static boolean disablePVPForFactionlessPlayers = false;
|
||||
public static boolean enablePVPAgainstFactionlessInAttackersLand = false;
|
||||
public static int noPVPDamageToOthersForXSecondsAfterLogin = 3;
|
||||
public static boolean peacefulTerritoryDisablePVP = true;
|
||||
public static boolean peacefulTerritoryDisableMonsters = false;
|
||||
public static boolean peacefulTerritoryDisableBoom = false;
|
||||
public static boolean peacefulMembersDisablePowerLoss = true;
|
||||
public static boolean permanentFactionsDisableLeaderPromotion = false;
|
||||
public static boolean claimsMustBeConnected = false;
|
||||
public static boolean claimsCanBeUnconnectedIfOwnedByOtherFaction = true;
|
||||
public static int claimsRequireMinFactionMembers = 1;
|
||||
public static int claimedLandsMax = 0;
|
||||
public static int lineClaimLimit = 5;
|
||||
// if someone is doing a radius claim and the process fails to claim land this many times in a row, it will exit
|
||||
public static int radiusClaimFailureLimit = 9;
|
||||
public static double considerFactionsReallyOfflineAfterXMinutes = 0.0;
|
||||
public static int actionDeniedPainAmount = 1;
|
||||
// commands which will be prevented if the player is a member of a permanent faction
|
||||
public static Set<String> permanentFactionMemberDenyCommands = new LinkedHashSet<>();
|
||||
// commands which will be prevented when in claimed territory of another faction
|
||||
public static Set<String> territoryNeutralDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> territoryEnemyDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> territoryAllyDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> warzoneDenyCommands = new LinkedHashSet<>();
|
||||
public static Set<String> wildernessDenyCommands = new LinkedHashSet<>();
|
||||
public static boolean territoryDenyBuild = true;
|
||||
public static boolean territoryDenyBuildWhenOffline = true;
|
||||
public static boolean territoryPainBuild = false;
|
||||
public static boolean territoryPainBuildWhenOffline = false;
|
||||
public static boolean territoryDenyUseage = true;
|
||||
public static boolean territoryEnemyDenyBuild = true;
|
||||
public static boolean territoryEnemyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryEnemyPainBuild = false;
|
||||
public static boolean territoryEnemyPainBuildWhenOffline = false;
|
||||
public static boolean territoryEnemyDenyUseage = true;
|
||||
public static boolean territoryAllyDenyBuild = true;
|
||||
public static boolean territoryAllyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryAllyPainBuild = false;
|
||||
public static boolean territoryAllyPainBuildWhenOffline = false;
|
||||
public static boolean territoryAllyDenyUseage = true;
|
||||
public static boolean territoryTruceDenyBuild = true;
|
||||
public static boolean territoryTruceDenyBuildWhenOffline = true;
|
||||
public static boolean territoryTrucePainBuild = false;
|
||||
public static boolean territoryTrucePainBuildWhenOffline = false;
|
||||
public static boolean territoryTruceDenyUseage = true;
|
||||
public static boolean territoryBlockCreepers = false;
|
||||
public static boolean territoryBlockCreepersWhenOffline = false;
|
||||
public static boolean territoryBlockFireballs = false;
|
||||
public static boolean territoryBlockFireballsWhenOffline = false;
|
||||
public static boolean territoryBlockTNT = false;
|
||||
public static boolean territoryBlockTNTWhenOffline = false;
|
||||
public static boolean territoryDenyEndermanBlocks = true;
|
||||
public static boolean territoryDenyEndermanBlocksWhenOffline = true;
|
||||
public static boolean safeZoneDenyBuild = true;
|
||||
public static boolean safeZoneDenyUseage = true;
|
||||
public static boolean safeZoneBlockTNT = true;
|
||||
public static boolean safeZonePreventAllDamageToPlayers = false;
|
||||
public static boolean safeZoneDenyEndermanBlocks = true;
|
||||
public static boolean warZoneDenyBuild = true;
|
||||
public static boolean warZoneDenyUseage = true;
|
||||
public static boolean warZoneBlockCreepers = false;
|
||||
public static boolean warZoneBlockFireballs = false;
|
||||
public static boolean warZoneBlockTNT = true;
|
||||
public static boolean warZonePowerLoss = true;
|
||||
public static boolean warZoneFriendlyFire = false;
|
||||
public static boolean warZoneDenyEndermanBlocks = true;
|
||||
public static boolean wildernessDenyBuild = false;
|
||||
public static boolean wildernessDenyUseage = false;
|
||||
public static boolean wildernessBlockCreepers = false;
|
||||
public static boolean wildernessBlockFireballs = false;
|
||||
public static boolean wildernessBlockTNT = false;
|
||||
public static boolean wildernessPowerLoss = true;
|
||||
public static boolean wildernessDenyEndermanBlocks = false;
|
||||
// for claimed areas where further faction-member ownership can be defined
|
||||
public static boolean ownedAreasEnabled = true;
|
||||
public static int ownedAreasLimitPerFaction = 0;
|
||||
public static boolean ownedAreasModeratorsCanSet = false;
|
||||
public static boolean ownedAreaModeratorsBypass = true;
|
||||
public static boolean ownedAreaDenyBuild = true;
|
||||
public static boolean ownedAreaPainBuild = false;
|
||||
public static boolean ownedMessageOnBorder = true;
|
||||
public static boolean ownedMessageInsideTerritory = true;
|
||||
public static boolean ownedMessageByChunk = false;
|
||||
public static boolean pistonProtectionThroughDenyBuild = true;
|
||||
public static Set<Material> territoryProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryProtectedMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static transient Set<EntityType> safeZoneNerfedCreatureTypes = EnumSet.noneOf(EntityType.class);
|
||||
/// <summary>
|
||||
/// This defines a set of materials which should always be allowed to use, regardless of factions permissions.
|
||||
/// Useful for HCF features.
|
||||
/// </summary>
|
||||
public static Set<Material> territoryBypassProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||
|
||||
// Economy settings
|
||||
public static boolean econEnabled = false;
|
||||
public static String econUniverseAccount = "";
|
||||
public static double econCostClaimWilderness = 30.0;
|
||||
public static double econCostClaimFromFactionBonus = 30.0;
|
||||
public static double econOverclaimRewardMultiplier = 0.0;
|
||||
public static double econClaimAdditionalMultiplier = 0.5;
|
||||
public static double econClaimRefundMultiplier = 0.7;
|
||||
public static double econClaimUnconnectedFee = 0.0;
|
||||
public static double econCostCreate = 100.0;
|
||||
public static double econCostOwner = 15.0;
|
||||
public static double econCostSethome = 30.0;
|
||||
public static double econCostJoin = 0.0;
|
||||
public static double econCostLeave = 0.0;
|
||||
public static double econCostKick = 0.0;
|
||||
public static double econCostInvite = 0.0;
|
||||
public static double econCostHome = 0.0;
|
||||
public static double econCostTag = 0.0;
|
||||
public static double econCostDesc = 0.0;
|
||||
public static double econCostTitle = 0.0;
|
||||
public static double econCostList = 0.0;
|
||||
public static double econCostMap = 0.0;
|
||||
public static double econCostPower = 0.0;
|
||||
public static double econCostShow = 0.0;
|
||||
public static double econFactionStartingBalance = 0.0;
|
||||
public static double econDenyWithdrawWhenMinutesAgeLessThan = 2880; // 2 days
|
||||
public static String dateFormat = "HH:mm dd/MM/yyyy";
|
||||
// Economy settings
|
||||
public static boolean econEnabled = false;
|
||||
public static String econUniverseAccount = "";
|
||||
public static double econCostClaimWilderness = 30.0;
|
||||
public static double econCostClaimFromFactionBonus = 30.0;
|
||||
public static double econOverclaimRewardMultiplier = 0.0;
|
||||
public static double econClaimAdditionalMultiplier = 0.5;
|
||||
public static double econClaimRefundMultiplier = 0.7;
|
||||
public static double econClaimUnconnectedFee = 0.0;
|
||||
public static double econCostCreate = 100.0;
|
||||
public static double econCostOwner = 15.0;
|
||||
public static double econCostSethome = 30.0;
|
||||
public static double econCostJoin = 0.0;
|
||||
public static double econCostLeave = 0.0;
|
||||
public static double econCostKick = 0.0;
|
||||
public static double econCostInvite = 0.0;
|
||||
public static double econCostHome = 0.0;
|
||||
public static double econCostTag = 0.0;
|
||||
public static double econCostDesc = 0.0;
|
||||
public static double econCostTitle = 0.0;
|
||||
public static double econCostList = 0.0;
|
||||
public static double econCostMap = 0.0;
|
||||
public static double econCostPower = 0.0;
|
||||
public static double econCostShow = 0.0;
|
||||
public static double econFactionStartingBalance = 0.0;
|
||||
public static double econDenyWithdrawWhenMinutesAgeLessThan = 2880; // 2 days
|
||||
public static String dateFormat = "HH:mm dd/MM/yyyy";
|
||||
|
||||
|
||||
// -------------------------------------------- //
|
||||
// INTEGRATION: DYNMAP
|
||||
// -------------------------------------------- //
|
||||
public static double econCostStuck = 0.0;
|
||||
public static double econCostOpen = 0.0;
|
||||
public static double econCostAlly = 0.0;
|
||||
public static double econCostTruce = 0.0;
|
||||
public static double econCostEnemy = 0.0;
|
||||
public static double econCostNeutral = 0.0;
|
||||
public static double econCostNoBoom = 0.0;
|
||||
// Should the dynmap intagration be used?
|
||||
public static boolean dynmapUse = false;
|
||||
// Name of the Factions layer
|
||||
public static String dynmapLayerName = "Factions";
|
||||
// Should the layer be visible per default
|
||||
public static boolean dynmapLayerVisible = true;
|
||||
// Ordering priority in layer menu (low goes before high - default is 0)
|
||||
public static int dynmapLayerPriority = 2;
|
||||
// (optional) set minimum zoom level before layer is visible (0 = default, always visible)
|
||||
public static int dynmapLayerMinimumZoom = 0;
|
||||
// Format for popup - substitute values for macros
|
||||
public static String dynmapDescription =
|
||||
"<div class=\"infowindow\">\n"
|
||||
+ "<span style=\"font-weight: bold; font-size: 150%;\">%name%</span><br>\n"
|
||||
+ "<span style=\"font-style: italic; font-size: 110%;\">%description%</span><br>"
|
||||
+ "<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Leader:</span> %players.leader%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Admins:</span> %players.admins.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Moderators:</span> %players.moderators.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Members:</span> %players.normals.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">TOTAL:</span> %players.count%<br>\n"
|
||||
+ "</br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Bank:</span> %money%<br>\n"
|
||||
+ "<br>\n"
|
||||
+ "</div>";
|
||||
// Enable the %money% macro. Only do this if you know your economy manager is thread-safe.
|
||||
public static boolean dynmapDescriptionMoney = false;
|
||||
// Allow players in faction to see one another on Dynmap (only relevant if Dynmap has 'player-info-protected' enabled)
|
||||
public static boolean dynmapVisibilityByFaction = true;
|
||||
// Optional setting to limit which regions to show.
|
||||
// If empty all regions are shown.
|
||||
// Specify Faction either by name or UUID.
|
||||
// To show all regions on a given world, add 'world:<worldname>' to the list.
|
||||
public static Set<String> dynmapVisibleFactions = new HashSet<>();
|
||||
// Optional setting to hide specific Factions.
|
||||
// Specify Faction either by name or UUID.
|
||||
// To hide all regions on a given world, add 'world:<worldname>' to the list.
|
||||
public static Set<String> dynmapHiddenFactions = new HashSet<>();
|
||||
public static DynmapStyle dynmapDefaultStyle = new DynmapStyle()
|
||||
.setStrokeColor(DYNMAP_STYLE_LINE_COLOR)
|
||||
.setLineOpacity(DYNMAP_STYLE_LINE_OPACITY)
|
||||
.setLineWeight(DYNMAP_STYLE_LINE_WEIGHT)
|
||||
.setFillColor(DYNMAP_STYLE_FILL_COLOR)
|
||||
.setFillOpacity(DYNMAP_STYLE_FILL_OPACITY)
|
||||
.setHomeMarker(DYNMAP_STYLE_HOME_MARKER)
|
||||
.setBoost(DYNMAP_STYLE_BOOST);
|
||||
// -------------------------------------------- //
|
||||
// INTEGRATION: DYNMAP
|
||||
// -------------------------------------------- //
|
||||
public static double econCostStuck = 0.0;
|
||||
public static double econCostOpen = 0.0;
|
||||
public static double econCostAlly = 0.0;
|
||||
public static double econCostTruce = 0.0;
|
||||
public static double econCostEnemy = 0.0;
|
||||
public static double econCostNeutral = 0.0;
|
||||
public static double econCostNoBoom = 0.0;
|
||||
// Should the dynmap intagration be used?
|
||||
public static boolean dynmapUse = false;
|
||||
// Name of the Factions layer
|
||||
public static String dynmapLayerName = "Factions";
|
||||
// Should the layer be visible per default
|
||||
public static boolean dynmapLayerVisible = true;
|
||||
// Ordering priority in layer menu (low goes before high - default is 0)
|
||||
public static int dynmapLayerPriority = 2;
|
||||
// (optional) set minimum zoom level before layer is visible (0 = default, always visible)
|
||||
public static int dynmapLayerMinimumZoom = 0;
|
||||
// Format for popup - substitute values for macros
|
||||
public static String dynmapDescription =
|
||||
"<div class=\"infowindow\">\n"
|
||||
+ "<span style=\"font-weight: bold; font-size: 150%;\">%name%</span><br>\n"
|
||||
+ "<span style=\"font-style: italic; font-size: 110%;\">%description%</span><br>"
|
||||
+ "<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Leader:</span> %players.leader%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Admins:</span> %players.admins.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Moderators:</span> %players.moderators.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Members:</span> %players.normals.count%<br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">TOTAL:</span> %players.count%<br>\n"
|
||||
+ "</br>\n"
|
||||
+ "<span style=\"font-weight: bold;\">Bank:</span> %money%<br>\n"
|
||||
+ "<br>\n"
|
||||
+ "</div>";
|
||||
// Enable the %money% macro. Only do this if you know your economy manager is thread-safe.
|
||||
public static boolean dynmapDescriptionMoney = false;
|
||||
// Allow players in faction to see one another on Dynmap (only relevant if Dynmap has 'player-info-protected' enabled)
|
||||
public static boolean dynmapVisibilityByFaction = true;
|
||||
// Optional setting to limit which regions to show.
|
||||
// If empty all regions are shown.
|
||||
// Specify Faction either by name or UUID.
|
||||
// To show all regions on a given world, add 'world:<worldname>' to the list.
|
||||
public static Set<String> dynmapVisibleFactions = new HashSet<>();
|
||||
// Optional setting to hide specific Factions.
|
||||
// Specify Faction either by name or UUID.
|
||||
// To hide all regions on a given world, add 'world:<worldname>' to the list.
|
||||
public static Set<String> dynmapHiddenFactions = new HashSet<>();
|
||||
public static DynmapStyle dynmapDefaultStyle = new DynmapStyle()
|
||||
.setStrokeColor(DYNMAP_STYLE_LINE_COLOR)
|
||||
.setLineOpacity(DYNMAP_STYLE_LINE_OPACITY)
|
||||
.setLineWeight(DYNMAP_STYLE_LINE_WEIGHT)
|
||||
.setFillColor(DYNMAP_STYLE_FILL_COLOR)
|
||||
.setFillOpacity(DYNMAP_STYLE_FILL_OPACITY)
|
||||
.setHomeMarker(DYNMAP_STYLE_HOME_MARKER)
|
||||
.setBoost(DYNMAP_STYLE_BOOST);
|
||||
|
||||
// Optional per Faction style overrides. Any defined replace those in dynmapDefaultStyle.
|
||||
// Specify Faction either by name or UUID.
|
||||
public static Map<String, DynmapStyle> dynmapFactionStyles = ImmutableMap.of(
|
||||
"SafeZone", new DynmapStyle().setStrokeColor("#FF00FF").setFillColor("#FF00FF").setBoost(false),
|
||||
"WarZone", new DynmapStyle().setStrokeColor("#FF0000").setFillColor("#FF0000").setBoost(false)
|
||||
);
|
||||
// Optional per Faction style overrides. Any defined replace those in dynmapDefaultStyle.
|
||||
// Specify Faction either by name or UUID.
|
||||
public static Map<String, DynmapStyle> dynmapFactionStyles = ImmutableMap.of(
|
||||
"SafeZone", new DynmapStyle().setStrokeColor("#FF00FF").setFillColor("#FF00FF").setBoost(false),
|
||||
"WarZone", new DynmapStyle().setStrokeColor("#FF0000").setFillColor("#FF0000").setBoost(false)
|
||||
);
|
||||
|
||||
|
||||
//Faction banks, to pay for land claiming and other costs instead of individuals paying for them
|
||||
public static boolean bankEnabled = true;
|
||||
public static boolean bankMembersCanWithdraw = false; //Have to be at least moderator to withdraw or pay money to another faction
|
||||
public static boolean bankFactionPaysCosts = true; //The faction pays for faction command costs, such as sethome
|
||||
public static boolean bankFactionPaysLandCosts = true; //The faction pays for land claiming costs.
|
||||
//Faction banks, to pay for land claiming and other costs instead of individuals paying for them
|
||||
public static boolean bankEnabled = true;
|
||||
public static boolean bankMembersCanWithdraw = false; //Have to be at least moderator to withdraw or pay money to another faction
|
||||
public static boolean bankFactionPaysCosts = true; //The faction pays for faction command costs, such as sethome
|
||||
public static boolean bankFactionPaysLandCosts = true; //The faction pays for land claiming costs.
|
||||
|
||||
// mainly for other plugins/mods that use a fake player to take actions, which shouldn't be subject to our protections
|
||||
public static Set<String> playersWhoBypassAllProtection = new LinkedHashSet<>();
|
||||
// mainly for other plugins/mods that use a fake player to take actions, which shouldn't be subject to our protections
|
||||
public static Set<String> playersWhoBypassAllProtection = new LinkedHashSet<>();
|
||||
|
||||
public static boolean useWorldConfigurationsAsWhitelist = false;
|
||||
public static Set<String> worldsNoClaiming = new LinkedHashSet<>();
|
||||
public static Set<String> worldsNoPowerLoss = new LinkedHashSet<>();
|
||||
public static Set<String> worldsIgnorePvP = new LinkedHashSet<>();
|
||||
public static Set<String> worldsNoWildernessProtection = new LinkedHashSet<>();
|
||||
public static boolean useWorldConfigurationsAsWhitelist = false;
|
||||
public static Set<String> worldsNoClaiming = new LinkedHashSet<>();
|
||||
public static Set<String> worldsNoPowerLoss = new LinkedHashSet<>();
|
||||
public static Set<String> worldsIgnorePvP = new LinkedHashSet<>();
|
||||
public static Set<String> worldsNoWildernessProtection = new LinkedHashSet<>();
|
||||
|
||||
// faction-<factionId>
|
||||
public static int defaultMaxVaults = 0;
|
||||
public static boolean disableFlightOnFactionClaimChange = true;
|
||||
// faction-<factionId>
|
||||
public static int defaultMaxVaults = 0;
|
||||
public static boolean disableFlightOnFactionClaimChange = true;
|
||||
|
||||
public static Backend backEnd = Backend.JSON;
|
||||
public static Backend backEnd = Backend.JSON;
|
||||
|
||||
// Taller and wider for "bigger f map"
|
||||
public static int mapHeight = 17;
|
||||
public static int mapWidth = 49;
|
||||
public static transient char[] mapKeyChrs = "\\/#$%=&^ABCDEFGHJKLMNOPQRSTUVWXYZ1234567890abcdeghjmnopqrsuvwxyz?".toCharArray();
|
||||
// Taller and wider for "bigger f map"
|
||||
public static int mapHeight = 17;
|
||||
public static int mapWidth = 49;
|
||||
public static transient char[] mapKeyChrs = "\\/#$%=&^ABCDEFGHJKLMNOPQRSTUVWXYZ1234567890abcdeghjmnopqrsuvwxyz?".toCharArray();
|
||||
|
||||
|
||||
//Cooldown for /f logout in seconds
|
||||
public static long logoutCooldown = 30;
|
||||
//Cooldown for /f logout in seconds
|
||||
public static long logoutCooldown = 30;
|
||||
|
||||
// Custom Ranks - Oof I forgot I was doing this _SvenjaReissaus_
|
||||
//public static boolean enableCustomRanks = false; // We will disable it by default to avoid any migration error
|
||||
//public static int maxCustomRanks = 2; // Setting this to -1 will allow unlimited custom ranks
|
||||
// -------------------------------------------- //
|
||||
// Persistance
|
||||
// ----------------------------------------- //
|
||||
// Custom Ranks - Oof I forgot I was doing this _SvenjaReissaus_
|
||||
//public static boolean enableCustomRanks = false; // We will disable it by default to avoid any migration error
|
||||
//public static int maxCustomRanks = 2; // Setting this to -1 will allow unlimited custom ranks
|
||||
// -------------------------------------------- //
|
||||
// Persistance
|
||||
// ----------------------------------------- //
|
||||
|
||||
|
||||
// Default Faction Permission Settings.
|
||||
public static boolean useLockedPermissions = false;
|
||||
public static boolean useCustomDefaultPermissions = true;
|
||||
public static boolean usePermissionHints = false;
|
||||
public static HashMap<String, DefaultPermissions> defaultFactionPermissions = new HashMap<>();
|
||||
public static HashSet<PermissableAction> lockedPermissions = new HashSet<>();
|
||||
// Default Faction Permission Settings.
|
||||
public static boolean useLockedPermissions = false;
|
||||
public static boolean useCustomDefaultPermissions = true;
|
||||
public static boolean usePermissionHints = false;
|
||||
public static HashMap<String, DefaultPermissions> defaultFactionPermissions = new HashMap<>();
|
||||
public static HashSet<PermissableAction> lockedPermissions = new HashSet<>();
|
||||
|
||||
private static transient Conf i = new Conf();
|
||||
private static transient Conf i = new Conf();
|
||||
|
||||
static {
|
||||
lockedPermissions.add(PermissableAction.CHEST);
|
||||
}
|
||||
static {
|
||||
lockedPermissions.add(PermissableAction.CHEST);
|
||||
}
|
||||
|
||||
static {
|
||||
baseCommandAliases.add("f");
|
||||
static {
|
||||
baseCommandAliases.add("f");
|
||||
|
||||
territoryEnemyDenyCommands.add("home");
|
||||
territoryEnemyDenyCommands.add("sethome");
|
||||
territoryEnemyDenyCommands.add("spawn");
|
||||
territoryEnemyDenyCommands.add("tpahere");
|
||||
territoryEnemyDenyCommands.add("tpaccept");
|
||||
territoryEnemyDenyCommands.add("tpa");
|
||||
territoryEnemyDenyCommands.add("home");
|
||||
territoryEnemyDenyCommands.add("sethome");
|
||||
territoryEnemyDenyCommands.add("spawn");
|
||||
territoryEnemyDenyCommands.add("tpahere");
|
||||
territoryEnemyDenyCommands.add("tpaccept");
|
||||
territoryEnemyDenyCommands.add("tpa");
|
||||
|
||||
/// TODO: Consider removing this in a future release, as permissions works just fine now
|
||||
territoryProtectedMaterials.add(Material.BEACON);
|
||||
/// TODO: Consider removing this in a future release, as permissions works just fine now
|
||||
territoryProtectedMaterials.add(Material.BEACON);
|
||||
|
||||
// Config is not loading if value is empty ???
|
||||
territoryBypassProtectedMaterials.add(Material.COOKIE);
|
||||
// Config is not loading if value is empty ???
|
||||
territoryBypassProtectedMaterials.add(Material.COOKIE);
|
||||
|
||||
territoryDenyUseageMaterials.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterials.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterials.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterials.add(Material.ARMOR_STAND);
|
||||
}
|
||||
territoryDenyUseageMaterials.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterials.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterials.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterials.add(Material.ARMOR_STAND);
|
||||
}
|
||||
|
||||
|
||||
territoryProtectedMaterialsWhenOffline.add(Material.BEACON);
|
||||
territoryProtectedMaterialsWhenOffline.add(Material.BEACON);
|
||||
|
||||
territoryDenyUseageMaterialsWhenOffline.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.ARMOR_STAND);
|
||||
}
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.BLAZE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.CAVE_SPIDER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.CREEPER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ENDER_DRAGON);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ENDERMAN);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.GHAST);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.MAGMA_CUBE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.PIG_ZOMBIE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SILVERFISH);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SKELETON);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SPIDER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SLIME);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.WITCH);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.WITHER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ZOMBIE);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.ARMOR_STAND);
|
||||
}
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.BLAZE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.CAVE_SPIDER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.CREEPER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ENDER_DRAGON);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ENDERMAN);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.GHAST);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.MAGMA_CUBE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.PIG_ZOMBIE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SILVERFISH);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SKELETON);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SPIDER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.SLIME);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.WITCH);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.WITHER);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.ZOMBIE);
|
||||
|
||||
// Is this called lazy load?
|
||||
defaultFactionPermissions.put("LEADER", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("COLEADER", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("MODERATOR", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("NORMAL MEMBER", new DefaultPermissions(false));
|
||||
defaultFactionPermissions.put("RECRUIT", new DefaultPermissions(false));
|
||||
}
|
||||
// Is this called lazy load?
|
||||
defaultFactionPermissions.put("LEADER", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("COLEADER", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("MODERATOR", new DefaultPermissions(true));
|
||||
defaultFactionPermissions.put("NORMAL MEMBER", new DefaultPermissions(false));
|
||||
defaultFactionPermissions.put("RECRUIT", new DefaultPermissions(false));
|
||||
}
|
||||
|
||||
public static void load() {
|
||||
FactionsPlugin.getInstance().persist.loadOrSaveDefault(i, Conf.class, "conf");
|
||||
}
|
||||
public static void load() {
|
||||
FactionsPlugin.getInstance().persist.loadOrSaveDefault(i, Conf.class, "conf");
|
||||
}
|
||||
|
||||
public static void save() {
|
||||
FactionsPlugin.getInstance().persist.save(i);
|
||||
}
|
||||
public static void save() {
|
||||
FactionsPlugin.getInstance().persist.save(i);
|
||||
}
|
||||
|
||||
public enum Backend {
|
||||
JSON,
|
||||
//MYSQL, TODO add MySQL storage
|
||||
;
|
||||
}
|
||||
public enum Backend {
|
||||
JSON,
|
||||
//MYSQL, TODO add MySQL storage
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,248 +12,248 @@ import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
public class FLocation implements Serializable {
|
||||
private static final long serialVersionUID = -8292915234027387983L;
|
||||
private static final boolean worldBorderSupport;
|
||||
private static final long serialVersionUID = -8292915234027387983L;
|
||||
private static final boolean worldBorderSupport;
|
||||
|
||||
static {
|
||||
boolean worldBorderClassPresent = false;
|
||||
try {
|
||||
Class.forName("org.bukkit.WorldBorder");
|
||||
worldBorderClassPresent = true;
|
||||
} catch (ClassNotFoundException ignored) {
|
||||
}
|
||||
static {
|
||||
boolean worldBorderClassPresent = false;
|
||||
try {
|
||||
Class.forName("org.bukkit.WorldBorder");
|
||||
worldBorderClassPresent = true;
|
||||
} catch (ClassNotFoundException ignored) {
|
||||
}
|
||||
|
||||
worldBorderSupport = worldBorderClassPresent;
|
||||
}
|
||||
worldBorderSupport = worldBorderClassPresent;
|
||||
}
|
||||
|
||||
private String worldName = "world";
|
||||
private int x = 0;
|
||||
private int z = 0;
|
||||
private String worldName = "world";
|
||||
private int x = 0;
|
||||
private int z = 0;
|
||||
|
||||
//----------------------------------------------//
|
||||
// Constructors
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Constructors
|
||||
//----------------------------------------------//
|
||||
|
||||
public FLocation() {
|
||||
public FLocation() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public FLocation(String worldName, int x, int z) {
|
||||
this.worldName = worldName;
|
||||
this.x = x;
|
||||
this.z = z;
|
||||
}
|
||||
public FLocation(String worldName, int x, int z) {
|
||||
this.worldName = worldName;
|
||||
this.x = x;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public FLocation(Location location) {
|
||||
this(location.getWorld().getName(), blockToChunk(location.getBlockX()), blockToChunk(location.getBlockZ()));
|
||||
}
|
||||
public FLocation(Location location) {
|
||||
this(location.getWorld().getName(), blockToChunk(location.getBlockX()), blockToChunk(location.getBlockZ()));
|
||||
}
|
||||
|
||||
public FLocation(Player player) {
|
||||
this(player.getLocation());
|
||||
}
|
||||
public FLocation(Player player) {
|
||||
this(player.getLocation());
|
||||
}
|
||||
|
||||
public FLocation(FPlayer fplayer) {
|
||||
this(fplayer.getPlayer());
|
||||
}
|
||||
public FLocation(FPlayer fplayer) {
|
||||
this(fplayer.getPlayer());
|
||||
}
|
||||
|
||||
public FLocation(Block block) {
|
||||
this(block.getLocation());
|
||||
}
|
||||
public FLocation(Block block) {
|
||||
this(block.getLocation());
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Getters and Setters
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Getters and Setters
|
||||
//----------------------------------------------//
|
||||
|
||||
public static FLocation fromString(String string) {
|
||||
int index = string.indexOf(",");
|
||||
int start = 1;
|
||||
String worldName = string.substring(start, index);
|
||||
start = index + 1;
|
||||
index = string.indexOf(",", start);
|
||||
int x = Integer.valueOf(string.substring(start, index));
|
||||
int y = Integer.valueOf(string.substring(index + 1, string.length() - 1));
|
||||
return new FLocation(worldName, x, y);
|
||||
}
|
||||
public static FLocation fromString(String string) {
|
||||
int index = string.indexOf(",");
|
||||
int start = 1;
|
||||
String worldName = string.substring(start, index);
|
||||
start = index + 1;
|
||||
index = string.indexOf(",", start);
|
||||
int x = Integer.valueOf(string.substring(start, index));
|
||||
int y = Integer.valueOf(string.substring(index + 1, string.length() - 1));
|
||||
return new FLocation(worldName, x, y);
|
||||
}
|
||||
|
||||
// bit-shifting is used because it's much faster than standard division and multiplication
|
||||
public static int blockToChunk(int blockVal) { // 1 chunk is 16x16 blocks
|
||||
return blockVal >> 4; // ">> 4" == "/ 16"
|
||||
}
|
||||
// bit-shifting is used because it's much faster than standard division and multiplication
|
||||
public static int blockToChunk(int blockVal) { // 1 chunk is 16x16 blocks
|
||||
return blockVal >> 4; // ">> 4" == "/ 16"
|
||||
}
|
||||
|
||||
public static int blockToRegion(int blockVal) { // 1 region is 512x512 blocks
|
||||
return blockVal >> 9; // ">> 9" == "/ 512"
|
||||
}
|
||||
public static int blockToRegion(int blockVal) { // 1 region is 512x512 blocks
|
||||
return blockVal >> 9; // ">> 9" == "/ 512"
|
||||
}
|
||||
|
||||
public static int chunkToRegion(int chunkVal) { // 1 region is 32x32 chunks
|
||||
return chunkVal >> 5; // ">> 5" == "/ 32"
|
||||
}
|
||||
public static int chunkToRegion(int chunkVal) { // 1 region is 32x32 chunks
|
||||
return chunkVal >> 5; // ">> 5" == "/ 32"
|
||||
}
|
||||
|
||||
public static int chunkToBlock(int chunkVal) {
|
||||
return chunkVal << 4; // "<< 4" == "* 16"
|
||||
}
|
||||
public static int chunkToBlock(int chunkVal) {
|
||||
return chunkVal << 4; // "<< 4" == "* 16"
|
||||
}
|
||||
|
||||
public static int regionToBlock(int regionVal) {
|
||||
return regionVal << 9; // "<< 9" == "* 512"
|
||||
}
|
||||
public static int regionToBlock(int regionVal) {
|
||||
return regionVal << 9; // "<< 9" == "* 512"
|
||||
}
|
||||
|
||||
public static int regionToChunk(int regionVal) {
|
||||
return regionVal << 5; // "<< 5" == "* 32"
|
||||
}
|
||||
public static int regionToChunk(int regionVal) {
|
||||
return regionVal << 5; // "<< 5" == "* 32"
|
||||
}
|
||||
|
||||
public static HashSet<FLocation> getArea(FLocation from, FLocation to) {
|
||||
HashSet<FLocation> ret = new HashSet<>();
|
||||
public static HashSet<FLocation> getArea(FLocation from, FLocation to) {
|
||||
HashSet<FLocation> ret = new HashSet<>();
|
||||
|
||||
for (long x : MiscUtil.range(from.getX(), to.getX())) {
|
||||
for (long z : MiscUtil.range(from.getZ(), to.getZ())) {
|
||||
ret.add(new FLocation(from.getWorldName(), (int) x, (int) z));
|
||||
}
|
||||
}
|
||||
for (long x : MiscUtil.range(from.getX(), to.getX())) {
|
||||
for (long z : MiscUtil.range(from.getZ(), to.getZ())) {
|
||||
ret.add(new FLocation(from.getWorldName(), (int) x, (int) z));
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Chunk getChunk() {
|
||||
return Bukkit.getWorld(worldName).getChunkAt(x, z);
|
||||
}
|
||||
public Chunk getChunk() {
|
||||
return Bukkit.getWorld(worldName).getChunkAt(x, z);
|
||||
}
|
||||
|
||||
public String getWorldName() {
|
||||
return worldName;
|
||||
}
|
||||
public String getWorldName() {
|
||||
return worldName;
|
||||
}
|
||||
|
||||
public void setWorldName(String worldName) {
|
||||
this.worldName = worldName;
|
||||
}
|
||||
public void setWorldName(String worldName) {
|
||||
this.worldName = worldName;
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Block/Chunk/Region Value Transformation
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Block/Chunk/Region Value Transformation
|
||||
//----------------------------------------------//
|
||||
|
||||
public World getWorld() {
|
||||
return Bukkit.getWorld(worldName);
|
||||
}
|
||||
public World getWorld() {
|
||||
return Bukkit.getWorld(worldName);
|
||||
}
|
||||
|
||||
public long getX() {
|
||||
return x;
|
||||
}
|
||||
public long getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
this.x = x;
|
||||
}
|
||||
public void setX(int x) {
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public long getZ() {
|
||||
return z;
|
||||
}
|
||||
public long getZ() {
|
||||
return z;
|
||||
}
|
||||
|
||||
public void setZ(int z) {
|
||||
this.z = z;
|
||||
}
|
||||
public void setZ(int z) {
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public String getCoordString() {
|
||||
return "" + x + "," + z;
|
||||
}
|
||||
public String getCoordString() {
|
||||
return "" + x + "," + z;
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Misc Geometry
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Misc Geometry
|
||||
//----------------------------------------------//
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[" + this.getWorldName() + "," + this.getCoordString() + "]";
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[" + this.getWorldName() + "," + this.getCoordString() + "]";
|
||||
}
|
||||
|
||||
public FLocation getRelative(int dx, int dz) {
|
||||
return new FLocation(this.worldName, this.x + dx, this.z + dz);
|
||||
}
|
||||
public FLocation getRelative(int dx, int dz) {
|
||||
return new FLocation(this.worldName, this.x + dx, this.z + dz);
|
||||
}
|
||||
|
||||
public double getDistanceTo(FLocation that) {
|
||||
double dx = that.x - this.x;
|
||||
double dz = that.z - this.z;
|
||||
return Math.sqrt(dx * dx + dz * dz);
|
||||
}
|
||||
public double getDistanceTo(FLocation that) {
|
||||
double dx = that.x - this.x;
|
||||
double dz = that.z - this.z;
|
||||
return Math.sqrt(dx * dx + dz * dz);
|
||||
}
|
||||
|
||||
public double getDistanceSquaredTo(FLocation that) {
|
||||
double dx = that.x - this.x;
|
||||
double dz = that.z - this.z;
|
||||
return dx * dx + dz * dz;
|
||||
}
|
||||
public double getDistanceSquaredTo(FLocation that) {
|
||||
double dx = that.x - this.x;
|
||||
double dz = that.z - this.z;
|
||||
return dx * dx + dz * dz;
|
||||
}
|
||||
|
||||
public boolean isInChunk(Location loc) {
|
||||
if (loc == null) {
|
||||
return false;
|
||||
}
|
||||
Chunk chunk = loc.getChunk();
|
||||
return loc.getWorld().getName().equalsIgnoreCase(getWorldName()) && chunk.getX() == x && chunk.getZ() == z;
|
||||
}
|
||||
public boolean isInChunk(Location loc) {
|
||||
if (loc == null) {
|
||||
return false;
|
||||
}
|
||||
Chunk chunk = loc.getChunk();
|
||||
return loc.getWorld().getName().equalsIgnoreCase(getWorldName()) && chunk.getX() == x && chunk.getZ() == z;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the chunk represented by this FLocation is outside the world border
|
||||
*
|
||||
* @param buffer the number of chunks from the border that will be treated as "outside"
|
||||
* @return whether this location is outside of the border
|
||||
*/
|
||||
public boolean isOutsideWorldBorder(int buffer) {
|
||||
if (!worldBorderSupport) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Checks if the chunk represented by this FLocation is outside the world border
|
||||
*
|
||||
* @param buffer the number of chunks from the border that will be treated as "outside"
|
||||
* @return whether this location is outside of the border
|
||||
*/
|
||||
public boolean isOutsideWorldBorder(int buffer) {
|
||||
if (!worldBorderSupport) {
|
||||
return false;
|
||||
}
|
||||
|
||||
WorldBorder border = getWorld().getWorldBorder();
|
||||
Chunk chunk = border.getCenter().getChunk();
|
||||
WorldBorder border = getWorld().getWorldBorder();
|
||||
Chunk chunk = border.getCenter().getChunk();
|
||||
|
||||
int lim = FLocation.chunkToRegion((int) border.getSize()) - buffer;
|
||||
int diffX = chunk.getX() - x;
|
||||
int diffZ = chunk.getZ() - z;
|
||||
int lim = FLocation.chunkToRegion((int) border.getSize()) - buffer;
|
||||
int diffX = chunk.getX() - x;
|
||||
int diffZ = chunk.getZ() - z;
|
||||
|
||||
return (diffX > lim || diffZ > lim) || (-diffX >= lim || -diffZ >= lim);
|
||||
}
|
||||
return (diffX > lim || diffZ > lim) || (-diffX >= lim || -diffZ >= lim);
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Some Geometry
|
||||
//----------------------------------------------//
|
||||
public Set<FLocation> getCircle(double radius) {
|
||||
double radiusSquared = radius * radius;
|
||||
//----------------------------------------------//
|
||||
// Some Geometry
|
||||
//----------------------------------------------//
|
||||
public Set<FLocation> getCircle(double radius) {
|
||||
double radiusSquared = radius * radius;
|
||||
|
||||
Set<FLocation> ret = new LinkedHashSet<>();
|
||||
if (radius <= 0) {
|
||||
return ret;
|
||||
}
|
||||
Set<FLocation> ret = new LinkedHashSet<>();
|
||||
if (radius <= 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int xfrom = (int) Math.floor(this.x - radius);
|
||||
int xto = (int) Math.ceil(this.x + radius);
|
||||
int zfrom = (int) Math.floor(this.z - radius);
|
||||
int zto = (int) Math.ceil(this.z + radius);
|
||||
int xfrom = (int) Math.floor(this.x - radius);
|
||||
int xto = (int) Math.ceil(this.x + radius);
|
||||
int zfrom = (int) Math.floor(this.z - radius);
|
||||
int zto = (int) Math.ceil(this.z + radius);
|
||||
|
||||
for (int x = xfrom; x <= xto; x++) {
|
||||
for (int z = zfrom; z <= zto; z++) {
|
||||
FLocation potential = new FLocation(this.worldName, x, z);
|
||||
if (this.getDistanceSquaredTo(potential) <= radiusSquared) {
|
||||
ret.add(potential);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int x = xfrom; x <= xto; x++) {
|
||||
for (int z = zfrom; z <= zto; z++) {
|
||||
FLocation potential = new FLocation(this.worldName, x, z);
|
||||
if (this.getDistanceSquaredTo(potential) <= radiusSquared) {
|
||||
ret.add(potential);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Comparison
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Comparison
|
||||
//----------------------------------------------//
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
// should be fast, with good range and few hash collisions: (x * 512) + z + worldName.hashCode
|
||||
return (this.x << 9) + this.z + (this.worldName != null ? this.worldName.hashCode() : 0);
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
// should be fast, with good range and few hash collisions: (x * 512) + z + worldName.hashCode
|
||||
return (this.x << 9) + this.z + (this.worldName != null ? this.worldName.hashCode() : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof FLocation)) {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof FLocation)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
FLocation that = (FLocation) obj;
|
||||
return this.x == that.x && this.z == that.z && (Objects.equals(this.worldName, that.worldName));
|
||||
}
|
||||
FLocation that = (FLocation) obj;
|
||||
return this.x == that.x && this.z == that.z && (Objects.equals(this.worldName, that.worldName));
|
||||
}
|
||||
}
|
@ -26,368 +26,368 @@ import java.util.List;
|
||||
|
||||
public interface FPlayer extends EconomyParticipator {
|
||||
|
||||
void setNotificationsEnabled(boolean notifications);
|
||||
void setNotificationsEnabled(boolean notifications);
|
||||
|
||||
boolean hasNotificationsEnabled();
|
||||
boolean hasNotificationsEnabled();
|
||||
|
||||
boolean isAlt();
|
||||
boolean isAlt();
|
||||
|
||||
void setAlt(boolean alt);
|
||||
void setAlt(boolean alt);
|
||||
|
||||
/**
|
||||
* Used to know if stealth is toggled on or off
|
||||
*
|
||||
* @return if stealth mode is on or not.
|
||||
*/
|
||||
boolean isStealthEnabled();
|
||||
/**
|
||||
* Used to know if stealth is toggled on or off
|
||||
*
|
||||
* @return if stealth mode is on or not.
|
||||
*/
|
||||
boolean isStealthEnabled();
|
||||
|
||||
/**
|
||||
* Toggles the stealth of the FPlayer depending on the parameter
|
||||
*
|
||||
* @param stealthToggle - toggles stealth
|
||||
*/
|
||||
void setStealth(boolean stealthToggle);
|
||||
/**
|
||||
* Toggles the stealth of the FPlayer depending on the parameter
|
||||
*
|
||||
* @param stealthToggle - toggles stealth
|
||||
*/
|
||||
void setStealth(boolean stealthToggle);
|
||||
|
||||
/**
|
||||
* Sets the kills and deaths of a player.
|
||||
*/
|
||||
void login();
|
||||
/**
|
||||
* Sets the kills and deaths of a player.
|
||||
*/
|
||||
void login();
|
||||
|
||||
/**
|
||||
* Caches the kills and deaths of a player.
|
||||
*/
|
||||
void logout();
|
||||
/**
|
||||
* Caches the kills and deaths of a player.
|
||||
*/
|
||||
void logout();
|
||||
|
||||
/**
|
||||
* gets the faction of a FPlayer.
|
||||
*
|
||||
* @return Faction of the FPlayer.
|
||||
*/
|
||||
Faction getFaction();
|
||||
/**
|
||||
* gets the faction of a FPlayer.
|
||||
*
|
||||
* @return Faction of the FPlayer.
|
||||
*/
|
||||
Faction getFaction();
|
||||
|
||||
/**
|
||||
* Sets the faction of the FPlayer
|
||||
*
|
||||
* @param faction faction to set.
|
||||
*/
|
||||
void setFaction(Faction faction, boolean alt);
|
||||
/**
|
||||
* Sets the faction of the FPlayer
|
||||
*
|
||||
* @param faction faction to set.
|
||||
*/
|
||||
void setFaction(Faction faction, boolean alt);
|
||||
|
||||
/**
|
||||
* Gets the faction ID of the player.
|
||||
*
|
||||
* @return FactionsID string
|
||||
*/
|
||||
String getFactionId();
|
||||
/**
|
||||
* Gets the faction ID of the player.
|
||||
*
|
||||
* @return FactionsID string
|
||||
*/
|
||||
String getFactionId();
|
||||
|
||||
/**
|
||||
* Check if a player has a faction
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
boolean hasFaction();
|
||||
/**
|
||||
* Check if a player has a faction
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
boolean hasFaction();
|
||||
|
||||
/**
|
||||
* Gets autoleave status
|
||||
*
|
||||
* @return boolean of the autoleave
|
||||
*/
|
||||
boolean willAutoLeave();
|
||||
/**
|
||||
* Gets autoleave status
|
||||
*
|
||||
* @return boolean of the autoleave
|
||||
*/
|
||||
boolean willAutoLeave();
|
||||
|
||||
void setAutoLeave(boolean autoLeave);
|
||||
void setAutoLeave(boolean autoLeave);
|
||||
|
||||
long getLastFrostwalkerMessage();
|
||||
long getLastFrostwalkerMessage();
|
||||
|
||||
void setLastFrostwalkerMessage();
|
||||
void setLastFrostwalkerMessage();
|
||||
|
||||
void setMonitorJoins(boolean monitor);
|
||||
void setMonitorJoins(boolean monitor);
|
||||
|
||||
boolean isMonitoringJoins();
|
||||
boolean isMonitoringJoins();
|
||||
|
||||
Role getRole();
|
||||
Role getRole();
|
||||
|
||||
void setRole(Role role);
|
||||
void setRole(Role role);
|
||||
|
||||
boolean shouldTakeFallDamage();
|
||||
boolean shouldTakeFallDamage();
|
||||
|
||||
void setTakeFallDamage(boolean fallDamage);
|
||||
void setTakeFallDamage(boolean fallDamage);
|
||||
|
||||
double getPowerBoost();
|
||||
double getPowerBoost();
|
||||
|
||||
void setPowerBoost(double powerBoost);
|
||||
void setPowerBoost(double powerBoost);
|
||||
|
||||
Faction getAutoClaimFor();
|
||||
Faction getAutoClaimFor();
|
||||
|
||||
void setAutoClaimFor(Faction faction);
|
||||
void setAutoClaimFor(Faction faction);
|
||||
|
||||
boolean isAutoSafeClaimEnabled();
|
||||
boolean isAutoSafeClaimEnabled();
|
||||
|
||||
void setIsAutoSafeClaimEnabled(boolean enabled);
|
||||
void setIsAutoSafeClaimEnabled(boolean enabled);
|
||||
|
||||
boolean isAutoWarClaimEnabled();
|
||||
boolean isAutoWarClaimEnabled();
|
||||
|
||||
void setIsAutoWarClaimEnabled(boolean enabled);
|
||||
void setIsAutoWarClaimEnabled(boolean enabled);
|
||||
|
||||
boolean isAdminBypassing();
|
||||
boolean isAdminBypassing();
|
||||
|
||||
boolean isVanished();
|
||||
boolean isVanished();
|
||||
|
||||
void setIsAdminBypassing(boolean val);
|
||||
void setIsAdminBypassing(boolean val);
|
||||
|
||||
ChatMode getChatMode();
|
||||
ChatMode getChatMode();
|
||||
|
||||
void setChatMode(ChatMode chatMode);
|
||||
void setChatMode(ChatMode chatMode);
|
||||
|
||||
boolean isIgnoreAllianceChat();
|
||||
boolean isIgnoreAllianceChat();
|
||||
|
||||
void setIgnoreAllianceChat(boolean ignore);
|
||||
void setIgnoreAllianceChat(boolean ignore);
|
||||
|
||||
boolean isSpyingChat();
|
||||
boolean isSpyingChat();
|
||||
|
||||
void setSpyingChat(boolean chatSpying);
|
||||
void setSpyingChat(boolean chatSpying);
|
||||
|
||||
boolean showScoreboard();
|
||||
boolean showScoreboard();
|
||||
|
||||
void setShowScoreboard(boolean show);
|
||||
void setShowScoreboard(boolean show);
|
||||
|
||||
// FIELD: account
|
||||
String getAccountId();
|
||||
// FIELD: account
|
||||
String getAccountId();
|
||||
|
||||
void resetFactionData(boolean doSpoutUpdate);
|
||||
void resetFactionData(boolean doSpoutUpdate);
|
||||
|
||||
void resetFactionData();
|
||||
void resetFactionData();
|
||||
|
||||
long getLastLoginTime();
|
||||
long getLastLoginTime();
|
||||
|
||||
void setLastLoginTime(long lastLoginTime);
|
||||
void setLastLoginTime(long lastLoginTime);
|
||||
|
||||
boolean isMapAutoUpdating();
|
||||
boolean isMapAutoUpdating();
|
||||
|
||||
void setMapAutoUpdating(boolean mapAutoUpdating);
|
||||
void setMapAutoUpdating(boolean mapAutoUpdating);
|
||||
|
||||
boolean hasLoginPvpDisabled();
|
||||
boolean hasLoginPvpDisabled();
|
||||
|
||||
FLocation getLastStoodAt();
|
||||
FLocation getLastStoodAt();
|
||||
|
||||
void setLastStoodAt(FLocation flocation);
|
||||
void setLastStoodAt(FLocation flocation);
|
||||
|
||||
String getTitle();
|
||||
String getTitle();
|
||||
|
||||
void setTitle(CommandSender sender, String title);
|
||||
void setTitle(CommandSender sender, String title);
|
||||
|
||||
String getName();
|
||||
String getName();
|
||||
|
||||
String getTag();
|
||||
String getTag();
|
||||
|
||||
// Base concatenations:
|
||||
// Base concatenations:
|
||||
|
||||
String getNameAndSomething(String something);
|
||||
String getNameAndSomething(String something);
|
||||
|
||||
String getNameAndTitle();
|
||||
String getNameAndTitle();
|
||||
|
||||
String getNameAndTag();
|
||||
String getNameAndTag();
|
||||
|
||||
// Colored concatenations:
|
||||
// These are used in information messages
|
||||
// Colored concatenations:
|
||||
// These are used in information messages
|
||||
|
||||
String getNameAndTitle(Faction faction);
|
||||
String getNameAndTitle(Faction faction);
|
||||
|
||||
String getNameAndTitle(FPlayer fplayer);
|
||||
String getNameAndTitle(FPlayer fplayer);
|
||||
|
||||
// Chat Tag:
|
||||
// These are injected into the format of global chat messages.
|
||||
// Chat Tag:
|
||||
// These are injected into the format of global chat messages.
|
||||
|
||||
String getChatTag();
|
||||
String getChatTag();
|
||||
|
||||
// Colored Chat Tag
|
||||
String getChatTag(Faction faction);
|
||||
// Colored Chat Tag
|
||||
String getChatTag(Faction faction);
|
||||
|
||||
String getChatTag(FPlayer fplayer);
|
||||
String getChatTag(FPlayer fplayer);
|
||||
|
||||
int getKills();
|
||||
int getKills();
|
||||
|
||||
int getDeaths();
|
||||
int getDeaths();
|
||||
|
||||
void takeMoney(int amt);
|
||||
void takeMoney(int amt);
|
||||
|
||||
boolean hasMoney(int amt);
|
||||
boolean hasMoney(int amt);
|
||||
|
||||
//inspect Stuff
|
||||
//inspect Stuff
|
||||
|
||||
boolean isInspectMode();
|
||||
boolean isInspectMode();
|
||||
|
||||
void setInspectMode(boolean status);
|
||||
void setInspectMode(boolean status);
|
||||
|
||||
|
||||
// Fly Checks
|
||||
// Fly Checks
|
||||
|
||||
Boolean canflyinWilderness();
|
||||
Boolean canflyinWilderness();
|
||||
|
||||
Boolean canflyinWarzone();
|
||||
Boolean canflyinWarzone();
|
||||
|
||||
Boolean canflyinSafezone();
|
||||
Boolean canflyinSafezone();
|
||||
|
||||
Boolean canflyinEnemy();
|
||||
Boolean canflyinEnemy();
|
||||
|
||||
Boolean canflyinAlly();
|
||||
Boolean canflyinAlly();
|
||||
|
||||
Boolean canflyinTruce();
|
||||
Boolean canflyinTruce();
|
||||
|
||||
Boolean canflyinNeutral();
|
||||
Boolean canflyinNeutral();
|
||||
|
||||
// -------------------------------
|
||||
// Relation and relation colors
|
||||
// -------------------------------
|
||||
// -------------------------------
|
||||
// Relation and relation colors
|
||||
// -------------------------------
|
||||
|
||||
@Override
|
||||
String describeTo(RelationParticipator that, boolean ucfirst);
|
||||
@Override
|
||||
String describeTo(RelationParticipator that, boolean ucfirst);
|
||||
|
||||
@Override
|
||||
String describeTo(RelationParticipator that);
|
||||
@Override
|
||||
String describeTo(RelationParticipator that);
|
||||
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp);
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp);
|
||||
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful);
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful);
|
||||
|
||||
Relation getRelationToLocation();
|
||||
Relation getRelationToLocation();
|
||||
|
||||
@Override
|
||||
ChatColor getColorTo(RelationParticipator rp);
|
||||
@Override
|
||||
ChatColor getColorTo(RelationParticipator rp);
|
||||
|
||||
|
||||
String getRolePrefix();
|
||||
String getRolePrefix();
|
||||
|
||||
//----------------------------------------------//
|
||||
// Health
|
||||
//----------------------------------------------//
|
||||
void heal(int amnt);
|
||||
//----------------------------------------------//
|
||||
// Health
|
||||
//----------------------------------------------//
|
||||
void heal(int amnt);
|
||||
|
||||
|
||||
//----------------------------------------------//
|
||||
// Power
|
||||
//----------------------------------------------//
|
||||
double getPower();
|
||||
//----------------------------------------------//
|
||||
// Power
|
||||
//----------------------------------------------//
|
||||
double getPower();
|
||||
|
||||
void alterPower(double delta);
|
||||
void alterPower(double delta);
|
||||
|
||||
double getPowerMax();
|
||||
double getPowerMax();
|
||||
|
||||
double getPowerMin();
|
||||
double getPowerMin();
|
||||
|
||||
int getPowerRounded();
|
||||
int getPowerRounded();
|
||||
|
||||
int getPowerMaxRounded();
|
||||
int getPowerMaxRounded();
|
||||
|
||||
int getPowerMinRounded();
|
||||
int getPowerMinRounded();
|
||||
|
||||
void updatePower();
|
||||
void updatePower();
|
||||
|
||||
void losePowerFromBeingOffline();
|
||||
void losePowerFromBeingOffline();
|
||||
|
||||
void onDeath();
|
||||
void onDeath();
|
||||
|
||||
//----------------------------------------------//
|
||||
// Territory
|
||||
//----------------------------------------------//
|
||||
boolean isInOwnTerritory();
|
||||
//----------------------------------------------//
|
||||
// Territory
|
||||
//----------------------------------------------//
|
||||
boolean isInOwnTerritory();
|
||||
|
||||
boolean isInOthersTerritory();
|
||||
boolean isInOthersTerritory();
|
||||
|
||||
boolean isInAllyTerritory();
|
||||
boolean isInAllyTerritory();
|
||||
|
||||
boolean isInNeutralTerritory();
|
||||
boolean isInNeutralTerritory();
|
||||
|
||||
boolean isInEnemyTerritory();
|
||||
boolean isInEnemyTerritory();
|
||||
|
||||
void sendFactionHereMessage(Faction from);
|
||||
void sendFactionHereMessage(Faction from);
|
||||
|
||||
// -------------------------------
|
||||
// Actions
|
||||
// -------------------------------
|
||||
// -------------------------------
|
||||
// Actions
|
||||
// -------------------------------
|
||||
|
||||
void leave(boolean makePay);
|
||||
void leave(boolean makePay);
|
||||
|
||||
boolean canClaimForFaction(Faction forFaction);
|
||||
boolean canClaimForFaction(Faction forFaction);
|
||||
|
||||
boolean canClaimForFactionAtLocation(Faction forFaction, Location location, boolean notifyFailure);
|
||||
boolean canClaimForFactionAtLocation(Faction forFaction, Location location, boolean notifyFailure);
|
||||
|
||||
boolean canClaimForFactionAtLocation(Faction forFaction, FLocation location, boolean notifyFailure);
|
||||
boolean canClaimForFactionAtLocation(Faction forFaction, FLocation location, boolean notifyFailure);
|
||||
|
||||
boolean attemptClaim(Faction forFaction, Location location, boolean notifyFailure);
|
||||
boolean attemptClaim(Faction forFaction, Location location, boolean notifyFailure);
|
||||
|
||||
boolean attemptClaim(Faction forFaction, FLocation location, boolean notifyFailure);
|
||||
boolean attemptClaim(Faction forFaction, FLocation location, boolean notifyFailure);
|
||||
|
||||
boolean isInVault();
|
||||
boolean isInVault();
|
||||
|
||||
void setInVault(boolean status);
|
||||
void setInVault(boolean status);
|
||||
|
||||
void msg(String str, Object... args);
|
||||
void msg(String str, Object... args);
|
||||
|
||||
String getId();
|
||||
String getId();
|
||||
|
||||
void setId(String id);
|
||||
void setId(String id);
|
||||
|
||||
Player getPlayer();
|
||||
Player getPlayer();
|
||||
|
||||
boolean isOnline();
|
||||
boolean isOnline();
|
||||
|
||||
void sendMessage(String message);
|
||||
void sendMessage(String message);
|
||||
|
||||
void sendMessage(List<String> messages);
|
||||
void sendMessage(List<String> messages);
|
||||
|
||||
void sendFancyMessage(FancyMessage message);
|
||||
void sendFancyMessage(FancyMessage message);
|
||||
|
||||
void sendFancyMessage(List<FancyMessage> message);
|
||||
void sendFancyMessage(List<FancyMessage> message);
|
||||
|
||||
int getMapHeight();
|
||||
int getMapHeight();
|
||||
|
||||
void setMapHeight(int height);
|
||||
void setMapHeight(int height);
|
||||
|
||||
boolean isOnlineAndVisibleTo(Player me);
|
||||
boolean isOnlineAndVisibleTo(Player me);
|
||||
|
||||
void remove();
|
||||
void remove();
|
||||
|
||||
boolean isOffline();
|
||||
boolean isOffline();
|
||||
|
||||
boolean isFlying();
|
||||
boolean isFlying();
|
||||
|
||||
void setFlying(boolean fly);
|
||||
void setFlying(boolean fly);
|
||||
|
||||
void setFFlying(boolean fly, boolean damage);
|
||||
void setFFlying(boolean fly, boolean damage);
|
||||
|
||||
boolean canFlyAtLocation();
|
||||
boolean canFlyAtLocation();
|
||||
|
||||
boolean canFlyAtLocation(FLocation location);
|
||||
boolean canFlyAtLocation(FLocation location);
|
||||
|
||||
boolean isEnteringPassword();
|
||||
boolean isEnteringPassword();
|
||||
|
||||
void setEnteringPassword(boolean toggle, String warp);
|
||||
void setEnteringPassword(boolean toggle, String warp);
|
||||
|
||||
String getEnteringWarp();
|
||||
String getEnteringWarp();
|
||||
|
||||
boolean checkIfNearbyEnemies();
|
||||
boolean checkIfNearbyEnemies();
|
||||
|
||||
int getCooldown(String cmd);
|
||||
int getCooldown(String cmd);
|
||||
|
||||
void setCooldown(String cmd, long cooldown);
|
||||
void setCooldown(String cmd, long cooldown);
|
||||
|
||||
boolean isCooldownEnded(String cmd);
|
||||
boolean isCooldownEnded(String cmd);
|
||||
|
||||
|
||||
// -------------------------------
|
||||
// Warmups
|
||||
// -------------------------------
|
||||
// -------------------------------
|
||||
// Warmups
|
||||
// -------------------------------
|
||||
|
||||
boolean isWarmingUp();
|
||||
boolean isWarmingUp();
|
||||
|
||||
WarmUpUtil.Warmup getWarmupType();
|
||||
WarmUpUtil.Warmup getWarmupType();
|
||||
|
||||
void addWarmup(WarmUpUtil.Warmup warmup, int taskId);
|
||||
void addWarmup(WarmUpUtil.Warmup warmup, int taskId);
|
||||
|
||||
void stopWarmup();
|
||||
void stopWarmup();
|
||||
|
||||
void clearWarmup();
|
||||
void clearWarmup();
|
||||
|
||||
|
||||
}
|
@ -7,34 +7,34 @@ import org.bukkit.entity.Player;
|
||||
import java.util.Collection;
|
||||
|
||||
public abstract class FPlayers {
|
||||
protected static FPlayers instance = getFPlayersImpl();
|
||||
protected static FPlayers instance = getFPlayersImpl();
|
||||
|
||||
public static FPlayers getInstance() {
|
||||
return instance;
|
||||
}
|
||||
public static FPlayers getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private static FPlayers getFPlayersImpl() {
|
||||
if (Conf.backEnd == Conf.Backend.JSON) {
|
||||
return new JSONFPlayers();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static FPlayers getFPlayersImpl() {
|
||||
if (Conf.backEnd == Conf.Backend.JSON) {
|
||||
return new JSONFPlayers();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract void clean();
|
||||
public abstract void clean();
|
||||
|
||||
public abstract Collection<FPlayer> getOnlinePlayers();
|
||||
public abstract Collection<FPlayer> getOnlinePlayers();
|
||||
|
||||
public abstract FPlayer getByPlayer(Player player);
|
||||
public abstract FPlayer getByPlayer(Player player);
|
||||
|
||||
public abstract Collection<FPlayer> getAllFPlayers();
|
||||
public abstract Collection<FPlayer> getAllFPlayers();
|
||||
|
||||
public abstract void forceSave();
|
||||
public abstract void forceSave();
|
||||
|
||||
public abstract void forceSave(boolean sync);
|
||||
public abstract void forceSave(boolean sync);
|
||||
|
||||
public abstract FPlayer getByOfflinePlayer(OfflinePlayer player);
|
||||
public abstract FPlayer getByOfflinePlayer(OfflinePlayer player);
|
||||
|
||||
public abstract FPlayer getById(String string);
|
||||
public abstract FPlayer getById(String string);
|
||||
|
||||
public abstract void load();
|
||||
public abstract void load();
|
||||
}
|
||||
|
@ -24,370 +24,370 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
public interface Faction extends EconomyParticipator {
|
||||
|
||||
|
||||
int getWallCheckMinutes();
|
||||
int getWallCheckMinutes();
|
||||
|
||||
void setWallCheckMinutes(int minutes);
|
||||
void setWallCheckMinutes(int minutes);
|
||||
|
||||
int getBufferCheckMinutes();
|
||||
int getBufferCheckMinutes();
|
||||
|
||||
void setBufferCheckMinutes(int minutes);
|
||||
void setBufferCheckMinutes(int minutes);
|
||||
|
||||
Map<Long, String> getChecks();
|
||||
Map<Long, String> getChecks();
|
||||
|
||||
Map<UUID, Integer> getPlayerBufferCheckCount();
|
||||
Map<UUID, Integer> getPlayerBufferCheckCount();
|
||||
|
||||
Map<UUID, Integer> getPlayerWallCheckCount();
|
||||
Map<UUID, Integer> getPlayerWallCheckCount();
|
||||
|
||||
boolean isWeeWoo();
|
||||
boolean isWeeWoo();
|
||||
|
||||
void setWeeWoo(boolean weeWoo);
|
||||
void setWeeWoo(boolean weeWoo);
|
||||
|
||||
boolean altInvited(FPlayer fplayer);
|
||||
boolean altInvited(FPlayer fplayer);
|
||||
|
||||
Map<String, Mission> getMissions();
|
||||
Map<String, Mission> getMissions();
|
||||
|
||||
void deinviteAlt(FPlayer alt);
|
||||
void deinviteAlt(FPlayer alt);
|
||||
|
||||
void deinviteAllAlts();
|
||||
void deinviteAllAlts();
|
||||
|
||||
void altInvite(FPlayer fplayer);
|
||||
void altInvite(FPlayer fplayer);
|
||||
|
||||
boolean addAltPlayer(FPlayer fplayer);
|
||||
boolean addAltPlayer(FPlayer fplayer);
|
||||
|
||||
boolean removeAltPlayer(FPlayer fplayer);
|
||||
boolean removeAltPlayer(FPlayer fplayer);
|
||||
|
||||
Set<FPlayer> getAltPlayers();
|
||||
Set<FPlayer> getAltPlayers();
|
||||
|
||||
HashMap<String, List<String>> getAnnouncements();
|
||||
HashMap<String, List<String>> getAnnouncements();
|
||||
|
||||
ConcurrentHashMap<String, LazyLocation> getWarps();
|
||||
ConcurrentHashMap<String, LazyLocation> getWarps();
|
||||
|
||||
LazyLocation getWarp(String name);
|
||||
LazyLocation getWarp(String name);
|
||||
|
||||
void setWarp(String name, LazyLocation loc);
|
||||
void setWarp(String name, LazyLocation loc);
|
||||
|
||||
boolean isWarp(String name);
|
||||
boolean isWarp(String name);
|
||||
|
||||
boolean hasWarpPassword(String warp);
|
||||
boolean hasWarpPassword(String warp);
|
||||
|
||||
boolean isWarpPassword(String warp, String password);
|
||||
boolean isWarpPassword(String warp, String password);
|
||||
|
||||
void setWarpPassword(String warp, String password);
|
||||
void setWarpPassword(String warp, String password);
|
||||
|
||||
boolean removeWarp(String name);
|
||||
boolean removeWarp(String name);
|
||||
|
||||
void clearWarps();
|
||||
void clearWarps();
|
||||
|
||||
int getMaxVaults();
|
||||
int getMaxVaults();
|
||||
|
||||
void setMaxVaults(int value);
|
||||
void setMaxVaults(int value);
|
||||
|
||||
void addAnnouncement(FPlayer fPlayer, String msg);
|
||||
void addAnnouncement(FPlayer fPlayer, String msg);
|
||||
|
||||
void sendUnreadAnnouncements(FPlayer fPlayer);
|
||||
void sendUnreadAnnouncements(FPlayer fPlayer);
|
||||
|
||||
void removeAnnouncements(FPlayer fPlayer);
|
||||
void removeAnnouncements(FPlayer fPlayer);
|
||||
|
||||
Set<String> getInvites();
|
||||
Set<String> getInvites();
|
||||
|
||||
String getFocused();
|
||||
String getFocused();
|
||||
|
||||
void setFocused(String setFocused);
|
||||
void setFocused(String setFocused);
|
||||
|
||||
String getId();
|
||||
String getId();
|
||||
|
||||
void setId(String id);
|
||||
void setId(String id);
|
||||
|
||||
void invite(FPlayer fplayer);
|
||||
void invite(FPlayer fplayer);
|
||||
|
||||
void deinvite(FPlayer fplayer);
|
||||
void deinvite(FPlayer fplayer);
|
||||
|
||||
void setUpgrade(UpgradeType upgrade, int level);
|
||||
void setUpgrade(UpgradeType upgrade, int level);
|
||||
|
||||
int getUpgrade(UpgradeType upgrade);
|
||||
int getUpgrade(UpgradeType upgrade);
|
||||
|
||||
boolean isInvited(FPlayer fplayer);
|
||||
boolean isInvited(FPlayer fplayer);
|
||||
|
||||
void ban(FPlayer target, FPlayer banner);
|
||||
void ban(FPlayer target, FPlayer banner);
|
||||
|
||||
int getPoints();
|
||||
int getPoints();
|
||||
|
||||
void setPoints(int points);
|
||||
void setPoints(int points);
|
||||
|
||||
int getStrikes();
|
||||
int getStrikes();
|
||||
|
||||
void setStrikes(int strikes);
|
||||
void setStrikes(int strikes);
|
||||
|
||||
void unban(FPlayer player);
|
||||
void unban(FPlayer player);
|
||||
|
||||
boolean isBanned(FPlayer player);
|
||||
boolean isBanned(FPlayer player);
|
||||
|
||||
Set<BanInfo> getBannedPlayers();
|
||||
Set<BanInfo> getBannedPlayers();
|
||||
|
||||
HashMap<Integer, String> getRulesMap();
|
||||
HashMap<Integer, String> getRulesMap();
|
||||
|
||||
void addRule(String rule);
|
||||
void addRule(String rule);
|
||||
|
||||
void removeRule(int index);
|
||||
void removeRule(int index);
|
||||
|
||||
void clearRules();
|
||||
void clearRules();
|
||||
|
||||
Location getCheckpoint();
|
||||
Location getCheckpoint();
|
||||
|
||||
void setCheckpoint(Location location);
|
||||
void setCheckpoint(Location location);
|
||||
|
||||
void addTnt(int amt);
|
||||
void addTnt(int amt);
|
||||
|
||||
void takeTnt(int amt);
|
||||
void takeTnt(int amt);
|
||||
|
||||
Location getVault();
|
||||
Location getVault();
|
||||
|
||||
void setVault(Location vaultLocation);
|
||||
void setVault(Location vaultLocation);
|
||||
|
||||
Inventory getChestInventory();
|
||||
Inventory getChestInventory();
|
||||
|
||||
void setChestSize(int chestSize);
|
||||
void setChestSize(int chestSize);
|
||||
|
||||
void setBannerPattern(ItemStack banner);
|
||||
void setBannerPattern(ItemStack banner);
|
||||
|
||||
ItemStack getBanner();
|
||||
ItemStack getBanner();
|
||||
|
||||
int getTnt();
|
||||
int getTnt();
|
||||
|
||||
String getRule(int index);
|
||||
String getRule(int index);
|
||||
|
||||
boolean getOpen();
|
||||
boolean getOpen();
|
||||
|
||||
void setOpen(boolean isOpen);
|
||||
void setOpen(boolean isOpen);
|
||||
|
||||
boolean isPeaceful();
|
||||
boolean isPeaceful();
|
||||
|
||||
void setPeaceful(boolean isPeaceful);
|
||||
void setPeaceful(boolean isPeaceful);
|
||||
|
||||
boolean getPeacefulExplosionsEnabled();
|
||||
boolean getPeacefulExplosionsEnabled();
|
||||
|
||||
void setPeacefulExplosionsEnabled(boolean val);
|
||||
void setPeacefulExplosionsEnabled(boolean val);
|
||||
|
||||
boolean noExplosionsInTerritory();
|
||||
boolean noExplosionsInTerritory();
|
||||
|
||||
boolean isPermanent();
|
||||
boolean isPermanent();
|
||||
|
||||
void setPermanent(boolean isPermanent);
|
||||
void setPermanent(boolean isPermanent);
|
||||
|
||||
String getTag();
|
||||
String getTag();
|
||||
|
||||
void setTag(String str);
|
||||
void setTag(String str);
|
||||
|
||||
String getTag(String prefix);
|
||||
String getTag(String prefix);
|
||||
|
||||
String getTag(Faction otherFaction);
|
||||
String getTag(Faction otherFaction);
|
||||
|
||||
String getTag(FPlayer otherFplayer);
|
||||
String getTag(FPlayer otherFplayer);
|
||||
|
||||
String getComparisonTag();
|
||||
String getComparisonTag();
|
||||
|
||||
String getDescription();
|
||||
String getDescription();
|
||||
|
||||
void setDescription(String value);
|
||||
void setDescription(String value);
|
||||
|
||||
boolean hasHome();
|
||||
boolean hasHome();
|
||||
|
||||
Location getHome();
|
||||
Location getHome();
|
||||
|
||||
void setHome(Location home);
|
||||
void setHome(Location home);
|
||||
|
||||
long getFoundedDate();
|
||||
long getFoundedDate();
|
||||
|
||||
void setFoundedDate(long newDate);
|
||||
void setFoundedDate(long newDate);
|
||||
|
||||
void confirmValidHome();
|
||||
void confirmValidHome();
|
||||
|
||||
String getAccountId();
|
||||
String getAccountId();
|
||||
|
||||
Integer getPermanentPower();
|
||||
Integer getPermanentPower();
|
||||
|
||||
void setPermanentPower(Integer permanentPower);
|
||||
void setPermanentPower(Integer permanentPower);
|
||||
|
||||
boolean hasPermanentPower();
|
||||
boolean hasPermanentPower();
|
||||
|
||||
double getPowerBoost();
|
||||
double getPowerBoost();
|
||||
|
||||
void setPowerBoost(double powerBoost);
|
||||
void setPowerBoost(double powerBoost);
|
||||
|
||||
boolean noPvPInTerritory();
|
||||
boolean noPvPInTerritory();
|
||||
|
||||
boolean noMonstersInTerritory();
|
||||
boolean noMonstersInTerritory();
|
||||
|
||||
boolean isNormal();
|
||||
boolean isNormal();
|
||||
|
||||
boolean isSystemFaction();
|
||||
boolean isSystemFaction();
|
||||
|
||||
@Deprecated
|
||||
boolean isNone();
|
||||
@Deprecated
|
||||
boolean isNone();
|
||||
|
||||
boolean isWilderness();
|
||||
boolean isWilderness();
|
||||
|
||||
boolean isSafeZone();
|
||||
boolean isSafeZone();
|
||||
|
||||
boolean isWarZone();
|
||||
boolean isWarZone();
|
||||
|
||||
boolean isPlayerFreeType();
|
||||
boolean isPlayerFreeType();
|
||||
|
||||
boolean isPowerFrozen();
|
||||
boolean isPowerFrozen();
|
||||
|
||||
void setLastDeath(long time);
|
||||
void setLastDeath(long time);
|
||||
|
||||
int getKills();
|
||||
int getKills();
|
||||
|
||||
int getDeaths();
|
||||
int getDeaths();
|
||||
|
||||
Access getAccess(Permissable permissable, PermissableAction permissableAction);
|
||||
Access getAccess(Permissable permissable, PermissableAction permissableAction);
|
||||
|
||||
Access getAccess(FPlayer player, PermissableAction permissableAction);
|
||||
Access getAccess(FPlayer player, PermissableAction permissableAction);
|
||||
|
||||
boolean setPermission(Permissable permissable, PermissableAction permissableAction, Access access);
|
||||
boolean setPermission(Permissable permissable, PermissableAction permissableAction, Access access);
|
||||
|
||||
void resetPerms();
|
||||
void resetPerms();
|
||||
|
||||
void setDefaultPerms();
|
||||
void setDefaultPerms();
|
||||
|
||||
void disband(Player disbander);
|
||||
void disband(Player disbander);
|
||||
|
||||
void disband(Player disbander, PlayerDisbandReason reason);
|
||||
void disband(Player disbander, PlayerDisbandReason reason);
|
||||
|
||||
// -------------------------------
|
||||
// Relation and relation colors
|
||||
// -------------------------------
|
||||
// -------------------------------
|
||||
// Relation and relation colors
|
||||
// -------------------------------
|
||||
|
||||
Map<Permissable, Map<PermissableAction, Access>> getPermissions();
|
||||
Map<Permissable, Map<PermissableAction, Access>> getPermissions();
|
||||
|
||||
@Override
|
||||
String describeTo(RelationParticipator that, boolean ucfirst);
|
||||
@Override
|
||||
String describeTo(RelationParticipator that, boolean ucfirst);
|
||||
|
||||
@Override
|
||||
String describeTo(RelationParticipator that);
|
||||
@Override
|
||||
String describeTo(RelationParticipator that);
|
||||
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp);
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp);
|
||||
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful);
|
||||
@Override
|
||||
Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful);
|
||||
|
||||
@Override
|
||||
ChatColor getColorTo(RelationParticipator rp);
|
||||
@Override
|
||||
ChatColor getColorTo(RelationParticipator rp);
|
||||
|
||||
Relation getRelationWish(Faction otherFaction);
|
||||
Relation getRelationWish(Faction otherFaction);
|
||||
|
||||
void setRelationWish(Faction otherFaction, Relation relation);
|
||||
void setRelationWish(Faction otherFaction, Relation relation);
|
||||
|
||||
int getRelationCount(Relation relation);
|
||||
int getRelationCount(Relation relation);
|
||||
|
||||
// ----------------------------------------------//
|
||||
// Power
|
||||
// ----------------------------------------------//
|
||||
double getPower();
|
||||
// ----------------------------------------------//
|
||||
// Power
|
||||
// ----------------------------------------------//
|
||||
double getPower();
|
||||
|
||||
double getPowerMax();
|
||||
double getPowerMax();
|
||||
|
||||
int getPowerRounded();
|
||||
int getPowerRounded();
|
||||
|
||||
int getPowerMaxRounded();
|
||||
int getPowerMaxRounded();
|
||||
|
||||
int getLandRounded();
|
||||
int getLandRounded();
|
||||
|
||||
int getLandRoundedInWorld(String worldName);
|
||||
int getLandRoundedInWorld(String worldName);
|
||||
|
||||
// -------------------------------
|
||||
// FPlayers
|
||||
// -------------------------------
|
||||
// -------------------------------
|
||||
// FPlayers
|
||||
// -------------------------------
|
||||
|
||||
boolean hasLandInflation();
|
||||
boolean hasLandInflation();
|
||||
|
||||
// maintain the reference list of FPlayers in this faction
|
||||
void refreshFPlayers();
|
||||
// maintain the reference list of FPlayers in this faction
|
||||
void refreshFPlayers();
|
||||
|
||||
boolean addFPlayer(FPlayer fplayer);
|
||||
boolean addFPlayer(FPlayer fplayer);
|
||||
|
||||
boolean removeFPlayer(FPlayer fplayer);
|
||||
boolean removeFPlayer(FPlayer fplayer);
|
||||
|
||||
int getSize();
|
||||
int getSize();
|
||||
|
||||
Set<FPlayer> getFPlayers();
|
||||
Set<FPlayer> getFPlayers();
|
||||
|
||||
Set<FPlayer> getFPlayersWhereOnline(boolean online);
|
||||
Set<FPlayer> getFPlayersWhereOnline(boolean online);
|
||||
|
||||
Set<FPlayer> getFPlayersWhereOnline(boolean online, FPlayer viewer);
|
||||
Set<FPlayer> getFPlayersWhereOnline(boolean online, FPlayer viewer);
|
||||
|
||||
FPlayer getFPlayerAdmin();
|
||||
FPlayer getFPlayerAdmin();
|
||||
|
||||
FPlayer getFPlayerLeader();
|
||||
FPlayer getFPlayerLeader();
|
||||
|
||||
ArrayList<FPlayer> getFPlayersWhereRole(Role role);
|
||||
ArrayList<FPlayer> getFPlayersWhereRole(Role role);
|
||||
|
||||
ArrayList<Player> getOnlinePlayers();
|
||||
ArrayList<Player> getOnlinePlayers();
|
||||
|
||||
// slightly faster check than getOnlinePlayers() if you just want to see if
|
||||
// there are any players online
|
||||
boolean hasPlayersOnline();
|
||||
// slightly faster check than getOnlinePlayers() if you just want to see if
|
||||
// there are any players online
|
||||
boolean hasPlayersOnline();
|
||||
|
||||
void memberLoggedOff();
|
||||
void memberLoggedOff();
|
||||
|
||||
// used when current leader is about to be removed from the faction;
|
||||
// promotes new leader, or disbands faction if no other members left
|
||||
void promoteNewLeader();
|
||||
// used when current leader is about to be removed from the faction;
|
||||
// promotes new leader, or disbands faction if no other members left
|
||||
void promoteNewLeader();
|
||||
|
||||
void promoteNewLeader(boolean autoLeave);
|
||||
void promoteNewLeader(boolean autoLeave);
|
||||
|
||||
Role getDefaultRole();
|
||||
Role getDefaultRole();
|
||||
|
||||
void setDefaultRole(Role role);
|
||||
void setDefaultRole(Role role);
|
||||
|
||||
// ----------------------------------------------//
|
||||
// Messages
|
||||
// ----------------------------------------------//
|
||||
void msg(String message, Object... args);
|
||||
// ----------------------------------------------//
|
||||
// Messages
|
||||
// ----------------------------------------------//
|
||||
void msg(String message, Object... args);
|
||||
|
||||
void sendMessage(String message);
|
||||
void sendMessage(String message);
|
||||
|
||||
// ----------------------------------------------//
|
||||
// Ownership of specific claims
|
||||
// ----------------------------------------------//
|
||||
// ----------------------------------------------//
|
||||
// Ownership of specific claims
|
||||
// ----------------------------------------------//
|
||||
|
||||
void sendMessage(List<String> messages);
|
||||
void sendMessage(List<String> messages);
|
||||
|
||||
Map<FLocation, Set<String>> getClaimOwnership();
|
||||
Map<FLocation, Set<String>> getClaimOwnership();
|
||||
|
||||
void clearAllClaimOwnership();
|
||||
void clearAllClaimOwnership();
|
||||
|
||||
void clearClaimOwnership(FLocation loc);
|
||||
void clearClaimOwnership(FLocation loc);
|
||||
|
||||
void clearClaimOwnership(FPlayer player);
|
||||
void clearClaimOwnership(FPlayer player);
|
||||
|
||||
int getCountOfClaimsWithOwners();
|
||||
int getCountOfClaimsWithOwners();
|
||||
|
||||
boolean doesLocationHaveOwnersSet(FLocation loc);
|
||||
boolean doesLocationHaveOwnersSet(FLocation loc);
|
||||
|
||||
boolean isPlayerInOwnerList(FPlayer player, FLocation loc);
|
||||
boolean isPlayerInOwnerList(FPlayer player, FLocation loc);
|
||||
|
||||
void setPlayerAsOwner(FPlayer player, FLocation loc);
|
||||
void setPlayerAsOwner(FPlayer player, FLocation loc);
|
||||
|
||||
void removePlayerAsOwner(FPlayer player, FLocation loc);
|
||||
void removePlayerAsOwner(FPlayer player, FLocation loc);
|
||||
|
||||
Set<String> getOwnerList(FLocation loc);
|
||||
Set<String> getOwnerList(FLocation loc);
|
||||
|
||||
String getOwnerListString(FLocation loc);
|
||||
String getOwnerListString(FLocation loc);
|
||||
|
||||
boolean playerHasOwnershipRights(FPlayer fplayer, FLocation loc);
|
||||
boolean playerHasOwnershipRights(FPlayer fplayer, FLocation loc);
|
||||
|
||||
// ----------------------------------------------//
|
||||
// Persistance and entity management
|
||||
// ----------------------------------------------//
|
||||
void remove();
|
||||
// ----------------------------------------------//
|
||||
// Persistance and entity management
|
||||
// ----------------------------------------------//
|
||||
void remove();
|
||||
|
||||
Set<FLocation> getAllClaims();
|
||||
Set<FLocation> getAllClaims();
|
||||
|
||||
String getPaypal();
|
||||
String getPaypal();
|
||||
|
||||
void paypalSet(String paypal);
|
||||
void paypalSet(String paypal);
|
||||
|
||||
}
|
||||
|
@ -6,50 +6,50 @@ import java.util.ArrayList;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class Factions {
|
||||
protected static Factions instance = getFactionsImpl();
|
||||
protected static Factions instance = getFactionsImpl();
|
||||
|
||||
public static Factions getInstance() {
|
||||
return instance;
|
||||
}
|
||||
public static Factions getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private static Factions getFactionsImpl() {
|
||||
switch (Conf.backEnd) {
|
||||
case JSON:
|
||||
return new JSONFactions();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static Factions getFactionsImpl() {
|
||||
switch (Conf.backEnd) {
|
||||
case JSON:
|
||||
return new JSONFactions();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract Faction getFactionById(String id);
|
||||
public abstract Faction getFactionById(String id);
|
||||
|
||||
public abstract Faction getByTag(String str);
|
||||
public abstract Faction getByTag(String str);
|
||||
|
||||
public abstract Faction getBestTagMatch(String start);
|
||||
public abstract Faction getBestTagMatch(String start);
|
||||
|
||||
public abstract boolean isTagTaken(String str);
|
||||
public abstract boolean isTagTaken(String str);
|
||||
|
||||
public abstract boolean isValidFactionId(String id);
|
||||
public abstract boolean isValidFactionId(String id);
|
||||
|
||||
public abstract Faction createFaction();
|
||||
public abstract Faction createFaction();
|
||||
|
||||
public abstract void removeFaction(String id);
|
||||
public abstract void removeFaction(String id);
|
||||
|
||||
public abstract Set<String> getFactionTags();
|
||||
public abstract Set<String> getFactionTags();
|
||||
|
||||
public abstract ArrayList<Faction> getAllFactions();
|
||||
public abstract ArrayList<Faction> getAllFactions();
|
||||
|
||||
@Deprecated
|
||||
public abstract Faction getNone();
|
||||
@Deprecated
|
||||
public abstract Faction getNone();
|
||||
|
||||
public abstract Faction getWilderness();
|
||||
public abstract Faction getWilderness();
|
||||
|
||||
public abstract Faction getSafeZone();
|
||||
public abstract Faction getSafeZone();
|
||||
|
||||
public abstract Faction getWarZone();
|
||||
public abstract Faction getWarZone();
|
||||
|
||||
public abstract void forceSave();
|
||||
public abstract void forceSave();
|
||||
|
||||
public abstract void forceSave(boolean sync);
|
||||
public abstract void forceSave(boolean sync);
|
||||
|
||||
public abstract void load();
|
||||
public abstract void load();
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -15,78 +15,78 @@ import java.util.Map;
|
||||
|
||||
public class BrigadierManager {
|
||||
|
||||
public Commodore commodore;
|
||||
public LiteralArgumentBuilder<Object> brigadier = LiteralArgumentBuilder.literal("factions");
|
||||
public Commodore commodore;
|
||||
public LiteralArgumentBuilder<Object> brigadier = LiteralArgumentBuilder.literal("factions");
|
||||
|
||||
public BrigadierManager() {
|
||||
commodore = CommodoreProvider.getCommodore(FactionsPlugin.getInstance());
|
||||
}
|
||||
public BrigadierManager() {
|
||||
commodore = CommodoreProvider.getCommodore(FactionsPlugin.getInstance());
|
||||
}
|
||||
|
||||
public void build() {
|
||||
commodore.register(brigadier.build());
|
||||
public void build() {
|
||||
commodore.register(brigadier.build());
|
||||
|
||||
// Add factions children to f alias
|
||||
LiteralArgumentBuilder<Object> fLiteral = LiteralArgumentBuilder.literal("f");
|
||||
for (CommandNode<Object> node : brigadier.getArguments()) fLiteral.then(node);
|
||||
commodore.register(fLiteral.build());
|
||||
}
|
||||
// Add factions children to f alias
|
||||
LiteralArgumentBuilder<Object> fLiteral = LiteralArgumentBuilder.literal("f");
|
||||
for (CommandNode<Object> node : brigadier.getArguments()) fLiteral.then(node);
|
||||
commodore.register(fLiteral.build());
|
||||
}
|
||||
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
// Register brigadier to all command aliases
|
||||
for (String alias : subCommand.aliases) {
|
||||
LiteralArgumentBuilder<Object> literal = LiteralArgumentBuilder.literal(alias);
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
// Register brigadier to all command aliases
|
||||
for (String alias : subCommand.aliases) {
|
||||
LiteralArgumentBuilder<Object> literal = LiteralArgumentBuilder.literal(alias);
|
||||
|
||||
if (subCommand.requirements.brigadier != null) {
|
||||
// If the requirements explicitly provide a BrigadierProvider then use it
|
||||
Class<? extends BrigadierProvider> brigadierProvider = subCommand.requirements.brigadier;
|
||||
if (subCommand.requirements.brigadier != null) {
|
||||
// If the requirements explicitly provide a BrigadierProvider then use it
|
||||
Class<? extends BrigadierProvider> brigadierProvider = subCommand.requirements.brigadier;
|
||||
|
||||
try {
|
||||
Constructor<? extends BrigadierProvider> constructor = brigadierProvider.getDeclaredConstructor(subCommand.getClass());
|
||||
brigadier.then(constructor.newInstance(subCommand).get(literal));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
// Generate our own based on args - quite ugly
|
||||
try {
|
||||
Constructor<? extends BrigadierProvider> constructor = brigadierProvider.getDeclaredConstructor(subCommand.getClass());
|
||||
brigadier.then(constructor.newInstance(subCommand).get(literal));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
// Generate our own based on args - quite ugly
|
||||
|
||||
// We create an orderly stack of all args, required and optional, format them differently
|
||||
List<RequiredArgumentBuilder<Object, ?>> stack = new ArrayList<>();
|
||||
for (String required : subCommand.requiredArgs) {
|
||||
// Simply add the arg name as required
|
||||
stack.add(RequiredArgumentBuilder.argument(required, StringArgumentType.word()));
|
||||
}
|
||||
// We create an orderly stack of all args, required and optional, format them differently
|
||||
List<RequiredArgumentBuilder<Object, ?>> stack = new ArrayList<>();
|
||||
for (String required : subCommand.requiredArgs) {
|
||||
// Simply add the arg name as required
|
||||
stack.add(RequiredArgumentBuilder.argument(required, StringArgumentType.word()));
|
||||
}
|
||||
|
||||
for (Map.Entry<String, String> optionalEntry : subCommand.optionalArgs.entrySet()) {
|
||||
RequiredArgumentBuilder<Object, ?> optional;
|
||||
for (Map.Entry<String, String> optionalEntry : subCommand.optionalArgs.entrySet()) {
|
||||
RequiredArgumentBuilder<Object, ?> optional;
|
||||
|
||||
// Optional without default
|
||||
if (optionalEntry.getKey().equalsIgnoreCase(optionalEntry.getValue())) {
|
||||
optional = RequiredArgumentBuilder.argument(":" + optionalEntry.getKey(), StringArgumentType.word());
|
||||
// Optional with default, explain
|
||||
} else {
|
||||
optional = RequiredArgumentBuilder.argument(optionalEntry.getKey() + "|" + optionalEntry.getValue(), StringArgumentType.word());
|
||||
}
|
||||
|
||||
stack.add(optional);
|
||||
}
|
||||
|
||||
// Reverse the stack and apply .then()
|
||||
RequiredArgumentBuilder<Object, ?> previous = null;
|
||||
for (int i = stack.size() - 1; i >= 0; i--) {
|
||||
if (previous == null) {
|
||||
previous = stack.get(i);
|
||||
} else {
|
||||
previous = stack.get(i).then(previous);
|
||||
}
|
||||
}
|
||||
|
||||
if (previous == null) {
|
||||
brigadier.then(literal);
|
||||
// Optional without default
|
||||
if (optionalEntry.getKey().equalsIgnoreCase(optionalEntry.getValue())) {
|
||||
optional = RequiredArgumentBuilder.argument(":" + optionalEntry.getKey(), StringArgumentType.word());
|
||||
// Optional with default, explain
|
||||
} else {
|
||||
brigadier.then(literal.then(previous));
|
||||
optional = RequiredArgumentBuilder.argument(optionalEntry.getKey() + "|" + optionalEntry.getValue(), StringArgumentType.word());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stack.add(optional);
|
||||
}
|
||||
|
||||
// Reverse the stack and apply .then()
|
||||
RequiredArgumentBuilder<Object, ?> previous = null;
|
||||
for (int i = stack.size() - 1; i >= 0; i--) {
|
||||
if (previous == null) {
|
||||
previous = stack.get(i);
|
||||
} else {
|
||||
previous = stack.get(i).then(previous);
|
||||
}
|
||||
}
|
||||
|
||||
if (previous == null) {
|
||||
brigadier.then(literal);
|
||||
} else {
|
||||
brigadier.then(literal.then(previous));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,6 +4,6 @@ import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||
|
||||
public interface BrigadierProvider {
|
||||
|
||||
ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent);
|
||||
ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent);
|
||||
|
||||
}
|
||||
|
@ -8,40 +8,40 @@ import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
public class CmdAHome extends FCommand {
|
||||
|
||||
public CmdAHome() {
|
||||
super();
|
||||
this.aliases.add("ahome");
|
||||
public CmdAHome() {
|
||||
super();
|
||||
this.aliases.add("ahome");
|
||||
|
||||
this.requiredArgs.add("player");
|
||||
this.requiredArgs.add("player");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.AHOME).noDisableOnLock().build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.AHOME).noDisableOnLock().build();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0);
|
||||
if (target == null) {
|
||||
context.msg(TL.GENERIC_NOPLAYERMATCH, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0);
|
||||
if (target == null) {
|
||||
context.msg(TL.GENERIC_NOPLAYERMATCH, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.isOnline()) {
|
||||
Faction faction = target.getFaction();
|
||||
if (faction.hasHome()) {
|
||||
target.getPlayer().teleport(faction.getHome(), PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
context.msg(TL.COMMAND_AHOME_SUCCESS, target.getName());
|
||||
target.msg(TL.COMMAND_AHOME_TARGET);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_AHOME_NOHOME, target.getName());
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.COMMAND_AHOME_OFFLINE, target.getName());
|
||||
}
|
||||
}
|
||||
if (target.isOnline()) {
|
||||
Faction faction = target.getFaction();
|
||||
if (faction.hasHome()) {
|
||||
target.getPlayer().teleport(faction.getHome(), PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
context.msg(TL.COMMAND_AHOME_SUCCESS, target.getName());
|
||||
target.msg(TL.COMMAND_AHOME_TARGET);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_AHOME_NOHOME, target.getName());
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.COMMAND_AHOME_OFFLINE, target.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_AHOME_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_AHOME_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -11,77 +11,77 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public class CmdAdmin extends FCommand {
|
||||
|
||||
public CmdAdmin() {
|
||||
super();
|
||||
this.aliases.add("admin");
|
||||
this.aliases.add("setadmin");
|
||||
this.aliases.add("leader");
|
||||
this.aliases.add("setleader");
|
||||
public CmdAdmin() {
|
||||
super();
|
||||
this.aliases.add("admin");
|
||||
this.aliases.add("setadmin");
|
||||
this.aliases.add("leader");
|
||||
this.aliases.add("setleader");
|
||||
|
||||
this.requiredArgs.add("player");
|
||||
this.requiredArgs.add("player");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.ADMIN).build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.ADMIN).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Allows admins bypass this.
|
||||
if (!context.fPlayer.isAdminBypassing() && !context.fPlayer.getRole().equals(Role.LEADER)) {
|
||||
context.msg(TL.COMMAND_ADMIN_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
FPlayer fyou = context.argAsBestFPlayerMatch(0);
|
||||
if (fyou == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Allows admins bypass this.
|
||||
if (!context.fPlayer.isAdminBypassing() && !context.fPlayer.getRole().equals(Role.LEADER)) {
|
||||
context.msg(TL.COMMAND_ADMIN_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
FPlayer fyou = context.argAsBestFPlayerMatch(0);
|
||||
if (fyou == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean permAny = Permission.ADMIN_ANY.has(context.sender, false);
|
||||
Faction targetFaction = fyou.getFaction();
|
||||
boolean permAny = Permission.ADMIN_ANY.has(context.sender, false);
|
||||
Faction targetFaction = fyou.getFaction();
|
||||
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_ADMIN_NOTMEMBER, fyou.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_ADMIN_NOTMEMBER, fyou.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
|
||||
if (fyou == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_ADMIN_TARGETSELF);
|
||||
return;
|
||||
}
|
||||
if (fyou == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_ADMIN_TARGETSELF);
|
||||
return;
|
||||
}
|
||||
|
||||
// only perform a FPlayerJoinEvent when newLeader isn't actually in the faction
|
||||
if (fyou.getFaction() != targetFaction) {
|
||||
FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), targetFaction, FPlayerJoinEvent.PlayerJoinReason.LEADER);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// only perform a FPlayerJoinEvent when newLeader isn't actually in the faction
|
||||
if (fyou.getFaction() != targetFaction) {
|
||||
FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), targetFaction, FPlayerJoinEvent.PlayerJoinReason.LEADER);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer admin = targetFaction.getFPlayerAdmin();
|
||||
FPlayer admin = targetFaction.getFPlayerAdmin();
|
||||
|
||||
// if target player is currently admin, demote and replace him
|
||||
if (fyou == admin) {
|
||||
targetFaction.promoteNewLeader();
|
||||
context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true));
|
||||
fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true));
|
||||
return;
|
||||
}
|
||||
// if target player is currently admin, demote and replace him
|
||||
if (fyou == admin) {
|
||||
targetFaction.promoteNewLeader();
|
||||
context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true));
|
||||
fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true));
|
||||
return;
|
||||
}
|
||||
|
||||
// promote target player, and demote existing admin if one exists
|
||||
if (admin != null) {
|
||||
admin.setRole(Role.COLEADER);
|
||||
}
|
||||
fyou.setRole(Role.LEADER);
|
||||
context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true));
|
||||
// promote target player, and demote existing admin if one exists
|
||||
if (admin != null) {
|
||||
admin.setRole(Role.COLEADER);
|
||||
}
|
||||
fyou.setRole(Role.LEADER);
|
||||
context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true));
|
||||
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
fplayer.msg(TL.COMMAND_ADMIN_PROMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true), fyou.describeTo(fplayer), targetFaction.describeTo(fplayer));
|
||||
}
|
||||
}
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
fplayer.msg(TL.COMMAND_ADMIN_PROMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true), fyou.describeTo(fplayer), targetFaction.describeTo(fplayer));
|
||||
}
|
||||
}
|
||||
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_ADMIN_DESCRIPTION;
|
||||
}
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_ADMIN_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -12,46 +12,46 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class CmdAnnounce extends FCommand {
|
||||
|
||||
public CmdAnnounce() {
|
||||
super();
|
||||
this.aliases.add("ann");
|
||||
this.aliases.add("announce");
|
||||
public CmdAnnounce() {
|
||||
super();
|
||||
this.aliases.add("ann");
|
||||
this.aliases.add("announce");
|
||||
|
||||
this.requiredArgs.add("message");
|
||||
this.requiredArgs.add("message");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.ANNOUNCE)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.brigadier(AnnounceBrigadier.class)
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.ANNOUNCE)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.brigadier(AnnounceBrigadier.class)
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String prefix = ChatColor.GREEN + context.faction.getTag() + ChatColor.YELLOW + " [" + ChatColor.GRAY + context.player.getName() + ChatColor.YELLOW + "] " + ChatColor.RESET;
|
||||
String message = StringUtils.join(context.args, " ");
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String prefix = ChatColor.GREEN + context.faction.getTag() + ChatColor.YELLOW + " [" + ChatColor.GRAY + context.player.getName() + ChatColor.YELLOW + "] " + ChatColor.RESET;
|
||||
String message = StringUtils.join(context.args, " ");
|
||||
|
||||
for (Player player : context.faction.getOnlinePlayers()) {
|
||||
player.sendMessage(prefix + message);
|
||||
}
|
||||
for (Player player : context.faction.getOnlinePlayers()) {
|
||||
player.sendMessage(prefix + message);
|
||||
}
|
||||
|
||||
// Add for offline players.
|
||||
for (FPlayer fp : context.faction.getFPlayersWhereOnline(false)) {
|
||||
context.faction.addAnnouncement(fp, prefix + message);
|
||||
}
|
||||
}
|
||||
// Add for offline players.
|
||||
for (FPlayer fp : context.faction.getFPlayersWhereOnline(false)) {
|
||||
context.faction.addAnnouncement(fp, prefix + message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_ANNOUNCE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_ANNOUNCE_DESCRIPTION;
|
||||
}
|
||||
|
||||
protected class AnnounceBrigadier implements BrigadierProvider {
|
||||
@Override
|
||||
public ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent) {
|
||||
return parent.then(RequiredArgumentBuilder.argument("message", StringArgumentType.greedyString()));
|
||||
}
|
||||
}
|
||||
protected class AnnounceBrigadier implements BrigadierProvider {
|
||||
@Override
|
||||
public ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent) {
|
||||
return parent.then(RequiredArgumentBuilder.argument("message", StringArgumentType.greedyString()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -8,37 +8,37 @@ import java.util.ArrayList;
|
||||
|
||||
public class CmdAutoHelp extends FCommand {
|
||||
|
||||
public CmdAutoHelp() {
|
||||
this.aliases.add("?");
|
||||
this.aliases.add("h");
|
||||
this.aliases.add("help");
|
||||
public CmdAutoHelp() {
|
||||
this.aliases.add("?");
|
||||
this.aliases.add("h");
|
||||
this.aliases.add("help");
|
||||
|
||||
this.setHelpShort("");
|
||||
this.setHelpShort("");
|
||||
|
||||
this.optionalArgs.put("page", "1");
|
||||
}
|
||||
this.optionalArgs.put("page", "1");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.commandChain.size() == 0) {
|
||||
return;
|
||||
}
|
||||
FCommand pcmd = context.commandChain.get(context.commandChain.size() - 1);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.commandChain.size() == 0) {
|
||||
return;
|
||||
}
|
||||
FCommand pcmd = context.commandChain.get(context.commandChain.size() - 1);
|
||||
|
||||
ArrayList<String> lines = new ArrayList<>(pcmd.helpLong);
|
||||
ArrayList<String> lines = new ArrayList<>(pcmd.helpLong);
|
||||
|
||||
for (FCommand scmd : pcmd.subCommands) {
|
||||
if (scmd.visibility == CommandVisibility.VISIBLE) {
|
||||
lines.add(scmd.getUseageTemplate(context, true));
|
||||
}
|
||||
// TODO deal with other visibilities
|
||||
}
|
||||
for (FCommand scmd : pcmd.subCommands) {
|
||||
if (scmd.visibility == CommandVisibility.VISIBLE) {
|
||||
lines.add(scmd.getUseageTemplate(context, true));
|
||||
}
|
||||
// TODO deal with other visibilities
|
||||
}
|
||||
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.getPage(lines, context.argAsInt(0, 1), TL.COMMAND_AUTOHELP_HELPFOR.toString() + pcmd.aliases.get(0) + "\""));
|
||||
}
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.getPage(lines, context.argAsInt(0, 1), TL.COMMAND_AUTOHELP_HELPFOR.toString() + pcmd.aliases.get(0) + "\""));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HELP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HELP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -13,73 +13,73 @@ import java.util.logging.Level;
|
||||
|
||||
public class CmdBan extends FCommand {
|
||||
|
||||
public CmdBan() {
|
||||
super();
|
||||
this.aliases.add("ban");
|
||||
public CmdBan() {
|
||||
super();
|
||||
this.aliases.add("ban");
|
||||
|
||||
this.requiredArgs.add("target");
|
||||
this.requiredArgs.add("target");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.BAN)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.BAN)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
|
||||
// Good on permission checks. Now lets just ban the player.
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return; // the above method sends a message if fails to find someone.
|
||||
}
|
||||
// Good on permission checks. Now lets just ban the player.
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return; // the above method sends a message if fails to find someone.
|
||||
}
|
||||
|
||||
if (context.fPlayer == target) {
|
||||
// You may not ban yourself
|
||||
context.msg(TL.COMMAND_BAN_SELF);
|
||||
return;
|
||||
} else if (target.getFaction() == context.faction && target.getRole().value >= context.fPlayer.getRole().value) {
|
||||
// You may not ban someone that has same or higher faction rank
|
||||
context.msg(TL.COMMAND_BAN_INSUFFICIENTRANK, target.getName());
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer == target) {
|
||||
// You may not ban yourself
|
||||
context.msg(TL.COMMAND_BAN_SELF);
|
||||
return;
|
||||
} else if (target.getFaction() == context.faction && target.getRole().value >= context.fPlayer.getRole().value) {
|
||||
// You may not ban someone that has same or higher faction rank
|
||||
context.msg(TL.COMMAND_BAN_INSUFFICIENTRANK, target.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
for (BanInfo banInfo : context.faction.getBannedPlayers()) {
|
||||
if (banInfo.getBanned().equals(target.getId())) {
|
||||
context.msg(TL.COMMAND_BAN_ALREADYBANNED);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (BanInfo banInfo : context.faction.getBannedPlayers()) {
|
||||
if (banInfo.getBanned().equals(target.getId())) {
|
||||
context.msg(TL.COMMAND_BAN_ALREADYBANNED);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Ban the user.
|
||||
context.faction.ban(target, context.fPlayer);
|
||||
context.faction.deinvite(target); // can't hurt
|
||||
// Ban the user.
|
||||
context.faction.ban(target, context.fPlayer);
|
||||
context.faction.deinvite(target); // can't hurt
|
||||
|
||||
// If in same Faction, lets make sure to kick them and throw an event.
|
||||
if (target.getFaction() == context.faction) {
|
||||
// If in same Faction, lets make sure to kick them and throw an event.
|
||||
if (target.getFaction() == context.faction) {
|
||||
|
||||
FPlayerLeaveEvent event = new FPlayerLeaveEvent(target, context.faction, FPlayerLeaveEvent.PlayerLeaveReason.BANNED);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
FPlayerLeaveEvent event = new FPlayerLeaveEvent(target, context.faction, FPlayerLeaveEvent.PlayerLeaveReason.BANNED);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
// if someone cancels a ban, we'll get people complaining here. So lets log it.
|
||||
FactionsPlugin.getInstance().log(Level.WARNING, "Attempted to ban {0} but someone cancelled the kick event. This isn't good.", target.getName());
|
||||
return;
|
||||
}
|
||||
if (event.isCancelled()) {
|
||||
// if someone cancels a ban, we'll get people complaining here. So lets log it.
|
||||
FactionsPlugin.getInstance().log(Level.WARNING, "Attempted to ban {0} but someone cancelled the kick event. This isn't good.", target.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
// Didn't get cancelled so remove them and reset their invite.
|
||||
context.faction.removeFPlayer(target);
|
||||
target.resetFactionData();
|
||||
}
|
||||
// Didn't get cancelled so remove them and reset their invite.
|
||||
context.faction.removeFPlayer(target);
|
||||
target.resetFactionData();
|
||||
}
|
||||
|
||||
// Lets inform the people!
|
||||
target.msg(TL.COMMAND_BAN_TARGET, context.faction.getTag(target.getFaction()));
|
||||
context.faction.msg(TL.COMMAND_BAN_BANNED, context.fPlayer.getName(), target.getName());
|
||||
}
|
||||
// Lets inform the people!
|
||||
target.msg(TL.COMMAND_BAN_TARGET, context.faction.getTag(target.getFaction()));
|
||||
context.faction.msg(TL.COMMAND_BAN_BANNED, context.fPlayer.getName(), target.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BAN_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BAN_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -13,57 +13,57 @@ import java.util.List;
|
||||
|
||||
public class CmdBanlist extends FCommand {
|
||||
|
||||
public CmdBanlist() {
|
||||
super();
|
||||
this.aliases.add("banlist");
|
||||
this.aliases.add("bans");
|
||||
this.aliases.add("banl");
|
||||
public CmdBanlist() {
|
||||
super();
|
||||
this.aliases.add("banlist");
|
||||
this.aliases.add("bans");
|
||||
this.aliases.add("banl");
|
||||
|
||||
this.optionalArgs.put("faction", "faction");
|
||||
this.optionalArgs.put("faction", "faction");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.faction;
|
||||
if (!context.args.isEmpty()) {
|
||||
target = context.argAsFaction(0);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.faction;
|
||||
if (!context.args.isEmpty()) {
|
||||
target = context.argAsFaction(0);
|
||||
}
|
||||
|
||||
if (target == Factions.getInstance().getWilderness()) {
|
||||
context.sender.sendMessage(TL.COMMAND_BANLIST_NOFACTION.toString());
|
||||
return;
|
||||
}
|
||||
if (target == Factions.getInstance().getWilderness()) {
|
||||
context.sender.sendMessage(TL.COMMAND_BANLIST_NOFACTION.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
if (target == null) {
|
||||
context.sender.sendMessage(TL.COMMAND_BANLIST_INVALID.format(context.argAsString(0)));
|
||||
return;
|
||||
}
|
||||
if (target == null) {
|
||||
context.sender.sendMessage(TL.COMMAND_BANLIST_INVALID.format(context.argAsString(0)));
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> lines = new ArrayList<>();
|
||||
lines.add(TL.COMMAND_BANLIST_HEADER.format(target.getBannedPlayers().size(), target.getTag(context.faction)));
|
||||
int i = 1;
|
||||
List<String> lines = new ArrayList<>();
|
||||
lines.add(TL.COMMAND_BANLIST_HEADER.format(target.getBannedPlayers().size(), target.getTag(context.faction)));
|
||||
int i = 1;
|
||||
|
||||
for (BanInfo info : target.getBannedPlayers()) {
|
||||
FPlayer banned = FPlayers.getInstance().getById(info.getBanned());
|
||||
FPlayer banner = FPlayers.getInstance().getById(info.getBanner());
|
||||
String timestamp = TL.sdf.format(info.getTime());
|
||||
for (BanInfo info : target.getBannedPlayers()) {
|
||||
FPlayer banned = FPlayers.getInstance().getById(info.getBanned());
|
||||
FPlayer banner = FPlayers.getInstance().getById(info.getBanner());
|
||||
String timestamp = TL.sdf.format(info.getTime());
|
||||
|
||||
lines.add(TL.COMMAND_BANLIST_ENTRY.format(i, banned.getName(), banner.getName(), timestamp));
|
||||
i++;
|
||||
}
|
||||
lines.add(TL.COMMAND_BANLIST_ENTRY.format(i, banned.getName(), banner.getName(), timestamp));
|
||||
i++;
|
||||
}
|
||||
|
||||
for (String s : lines) {
|
||||
context.fPlayer.getPlayer().sendMessage(s);
|
||||
}
|
||||
}
|
||||
for (String s : lines) {
|
||||
context.fPlayer.getPlayer().sendMessage(s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BANLIST_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BANLIST_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -13,103 +13,103 @@ import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class CmdBanner extends FCommand {
|
||||
public CmdBanner() {
|
||||
this.aliases.add("banner");
|
||||
this.aliases.add("warbanner");
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER).playerOnly().memberOnly().build();
|
||||
}
|
||||
public CmdBanner() {
|
||||
this.aliases.add("banner");
|
||||
this.aliases.add("warbanner");
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER).playerOnly().memberOnly().build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) {
|
||||
context.msg(TL.COMMAND_BANNER_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (context.faction.getBanner() == null) {
|
||||
context.msg(TL.COMMAND_BANNER_NOBANNER);
|
||||
return;
|
||||
}
|
||||
if (!context.fPlayer.hasMoney(FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000))) {
|
||||
context.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return;
|
||||
}
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
ItemStack warBanner = context.fPlayer.getFaction().getBanner();
|
||||
ItemMeta warmeta = warBanner.getItemMeta();
|
||||
warmeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name")));
|
||||
warmeta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore")));
|
||||
warBanner.setItemMeta(warmeta);
|
||||
context.msg(TL.COMMAND_BANNER_SUCCESS);
|
||||
warBanner.setAmount(1);
|
||||
context.player.getInventory().addItem(warBanner);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) {
|
||||
context.msg(TL.COMMAND_BANNER_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (context.faction.getBanner() == null) {
|
||||
context.msg(TL.COMMAND_BANNER_NOBANNER);
|
||||
return;
|
||||
}
|
||||
if (!context.fPlayer.hasMoney(FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000))) {
|
||||
context.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return;
|
||||
}
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
ItemStack warBanner = context.fPlayer.getFaction().getBanner();
|
||||
ItemMeta warmeta = warBanner.getItemMeta();
|
||||
warmeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name")));
|
||||
warmeta.setLore(FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fbanners.Item.Lore")));
|
||||
warBanner.setItemMeta(warmeta);
|
||||
context.msg(TL.COMMAND_BANNER_SUCCESS);
|
||||
warBanner.setAmount(1);
|
||||
context.player.getInventory().addItem(warBanner);
|
||||
}
|
||||
|
||||
public boolean hasMoney(FPlayer fme, int amt) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
if (econ.getBalance(fme.getPlayer()) >= amt) {
|
||||
return true;
|
||||
}
|
||||
fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return false;
|
||||
}
|
||||
public boolean hasMoney(FPlayer fme, int amt) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
if (econ.getBalance(fme.getPlayer()) >= amt) {
|
||||
return true;
|
||||
}
|
||||
fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return false;
|
||||
}
|
||||
|
||||
public void takeMoney(FPlayer fme, int amt) {
|
||||
if (this.hasMoney(fme, amt)) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
econ.withdrawPlayer(fme.getPlayer(), (double) amt);
|
||||
fme.sendMessage(TL.COMMAND_BANNER_MONEYTAKE.toString().replace("{amount}", amt + ""));
|
||||
}
|
||||
}
|
||||
public void takeMoney(FPlayer fme, int amt) {
|
||||
if (this.hasMoney(fme, amt)) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
econ.withdrawPlayer(fme.getPlayer(), (double) amt);
|
||||
fme.sendMessage(TL.COMMAND_BANNER_MONEYTAKE.toString().replace("{amount}", amt + ""));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean inventoryContains(Inventory inventory, ItemStack item) {
|
||||
int count = 0;
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (ItemStack item1 : items) {
|
||||
if (item1 != null && item1.getType() == item.getType() && item1.getDurability() == item.getDurability()) {
|
||||
count += item1.getAmount();
|
||||
}
|
||||
if (count >= item.getAmount()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean inventoryContains(Inventory inventory, ItemStack item) {
|
||||
int count = 0;
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (ItemStack item1 : items) {
|
||||
if (item1 != null && item1.getType() == item.getType() && item1.getDurability() == item.getDurability()) {
|
||||
count += item1.getAmount();
|
||||
}
|
||||
if (count >= item.getAmount()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void removeFromInventory(Inventory inventory, ItemStack item) {
|
||||
int amt = item.getAmount();
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (int i = 0; i < items.length; ++i) {
|
||||
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
|
||||
if (items[i].getAmount() > amt) {
|
||||
items[i].setAmount(items[i].getAmount() - amt);
|
||||
break;
|
||||
}
|
||||
if (items[i].getAmount() == amt) {
|
||||
items[i] = null;
|
||||
break;
|
||||
}
|
||||
amt -= items[i].getAmount();
|
||||
public void removeFromInventory(Inventory inventory, ItemStack item) {
|
||||
int amt = item.getAmount();
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (int i = 0; i < items.length; ++i) {
|
||||
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
|
||||
if (items[i].getAmount() > amt) {
|
||||
items[i].setAmount(items[i].getAmount() - amt);
|
||||
break;
|
||||
}
|
||||
if (items[i].getAmount() == amt) {
|
||||
items[i] = null;
|
||||
}
|
||||
}
|
||||
inventory.setContents(items);
|
||||
}
|
||||
break;
|
||||
}
|
||||
amt -= items[i].getAmount();
|
||||
items[i] = null;
|
||||
}
|
||||
}
|
||||
inventory.setContents(items);
|
||||
}
|
||||
|
||||
public int getEmptySlots(Player p) {
|
||||
PlayerInventory inventory = p.getInventory();
|
||||
ItemStack[] cont = inventory.getContents();
|
||||
int i = 0;
|
||||
for (ItemStack item : cont) {
|
||||
if (item != null && item.getType() != Material.AIR) {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
return 36 - i;
|
||||
}
|
||||
public int getEmptySlots(Player p) {
|
||||
PlayerInventory inventory = p.getInventory();
|
||||
ItemStack[] cont = inventory.getContents();
|
||||
int i = 0;
|
||||
for (ItemStack item : cont) {
|
||||
if (item != null && item.getType() != Material.AIR) {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
return 36 - i;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BANNER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BANNER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -6,42 +6,42 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdBoom extends FCommand {
|
||||
|
||||
public CmdBoom() {
|
||||
super();
|
||||
this.aliases.add("noboom");
|
||||
this.aliases.add("explosions");
|
||||
this.aliases.add("toggleexplosions");
|
||||
public CmdBoom() {
|
||||
super();
|
||||
this.aliases.add("noboom");
|
||||
this.aliases.add("explosions");
|
||||
this.aliases.add("toggleexplosions");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.NO_BOOM)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.NO_BOOM)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!context.faction.isPeaceful()) {
|
||||
context.msg(TL.COMMAND_BOOM_PEACEFULONLY);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!context.faction.isPeaceful()) {
|
||||
context.msg(TL.COMMAND_BOOM_PEACEFULONLY);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostNoBoom, TL.COMMAND_BOOM_TOTOGGLE, TL.COMMAND_BOOM_FORTOGGLE)) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostNoBoom, TL.COMMAND_BOOM_TOTOGGLE, TL.COMMAND_BOOM_FORTOGGLE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.setPeacefulExplosionsEnabled(context.argAsBool(0, !context.faction.getPeacefulExplosionsEnabled()));
|
||||
context.faction.setPeacefulExplosionsEnabled(context.argAsBool(0, !context.faction.getPeacefulExplosionsEnabled()));
|
||||
|
||||
String enabled = context.faction.noExplosionsInTerritory() ? TL.GENERIC_DISABLED.toString() : TL.GENERIC_ENABLED.toString();
|
||||
String enabled = context.faction.noExplosionsInTerritory() ? TL.GENERIC_DISABLED.toString() : TL.GENERIC_ENABLED.toString();
|
||||
|
||||
// Inform
|
||||
context.faction.msg(TL.COMMAND_BOOM_ENABLED, context.fPlayer.describeTo(context.faction), enabled);
|
||||
}
|
||||
// Inform
|
||||
context.faction.msg(TL.COMMAND_BOOM_ENABLED, context.fPlayer.describeTo(context.faction), enabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BOOM_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BOOM_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -6,34 +6,34 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdBypass extends FCommand {
|
||||
|
||||
public CmdBypass() {
|
||||
super();
|
||||
this.aliases.add("bypass");
|
||||
public CmdBypass() {
|
||||
super();
|
||||
this.aliases.add("bypass");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BYPASS)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BYPASS)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.setIsAdminBypassing(context.argAsBool(0, !context.fPlayer.isAdminBypassing()));
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.setIsAdminBypassing(context.argAsBool(0, !context.fPlayer.isAdminBypassing()));
|
||||
|
||||
// TODO: Move this to a transient field in the model??
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
context.fPlayer.msg(TL.COMMAND_BYPASS_ENABLE.toString());
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_ENABLELOG.toString());
|
||||
} else {
|
||||
context.fPlayer.msg(TL.COMMAND_BYPASS_DISABLE.toString());
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_DISABLELOG.toString());
|
||||
}
|
||||
}
|
||||
// TODO: Move this to a transient field in the model??
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
context.fPlayer.msg(TL.COMMAND_BYPASS_ENABLE.toString());
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_ENABLELOG.toString());
|
||||
} else {
|
||||
context.fPlayer.msg(TL.COMMAND_BYPASS_DISABLE.toString());
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_BYPASS_DISABLELOG.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BYPASS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BYPASS_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -10,88 +10,88 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
|
||||
public class CmdChat extends FCommand {
|
||||
|
||||
public CmdChat() {
|
||||
super();
|
||||
this.aliases.add("c");
|
||||
this.aliases.add("chat");
|
||||
public CmdChat() {
|
||||
super();
|
||||
this.aliases.add("c");
|
||||
this.aliases.add("chat");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("mode", "next");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("mode", "next");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.brigadier(ChatBrigadier.class)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.brigadier(ChatBrigadier.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.factionOnlyChat) {
|
||||
context.msg(TL.COMMAND_CHAT_DISABLED.toString());
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.factionOnlyChat) {
|
||||
context.msg(TL.COMMAND_CHAT_DISABLED.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
String modeString = context.argAsString(0);
|
||||
ChatMode modeTarget = context.fPlayer.getChatMode().getNext();
|
||||
String modeString = context.argAsString(0);
|
||||
ChatMode modeTarget = context.fPlayer.getChatMode().getNext();
|
||||
|
||||
if (modeString != null) {
|
||||
modeString = modeString.toLowerCase();
|
||||
// Only allow Mods and higher rank to switch to this channel.
|
||||
if (modeString.startsWith("m")) {
|
||||
if (!context.fPlayer.getRole().isAtLeast(Role.MODERATOR)) {
|
||||
context.msg(TL.COMMAND_CHAT_MOD_ONLY);
|
||||
return;
|
||||
} else modeTarget = ChatMode.MOD;
|
||||
} else if (modeString.startsWith("p")) {
|
||||
modeTarget = ChatMode.PUBLIC;
|
||||
} else if (modeString.startsWith("a")) {
|
||||
modeTarget = ChatMode.ALLIANCE;
|
||||
} else if (modeString.startsWith("f")) {
|
||||
modeTarget = ChatMode.FACTION;
|
||||
} else if (modeString.startsWith("t")) {
|
||||
modeTarget = ChatMode.TRUCE;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHAT_INVALIDMODE);
|
||||
if (modeString != null) {
|
||||
modeString = modeString.toLowerCase();
|
||||
// Only allow Mods and higher rank to switch to this channel.
|
||||
if (modeString.startsWith("m")) {
|
||||
if (!context.fPlayer.getRole().isAtLeast(Role.MODERATOR)) {
|
||||
context.msg(TL.COMMAND_CHAT_MOD_ONLY);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else modeTarget = ChatMode.MOD;
|
||||
} else if (modeString.startsWith("p")) {
|
||||
modeTarget = ChatMode.PUBLIC;
|
||||
} else if (modeString.startsWith("a")) {
|
||||
modeTarget = ChatMode.ALLIANCE;
|
||||
} else if (modeString.startsWith("f")) {
|
||||
modeTarget = ChatMode.FACTION;
|
||||
} else if (modeString.startsWith("t")) {
|
||||
modeTarget = ChatMode.TRUCE;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHAT_INVALIDMODE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
context.fPlayer.setChatMode(modeTarget);
|
||||
context.fPlayer.setChatMode(modeTarget);
|
||||
|
||||
switch (context.fPlayer.getChatMode()) {
|
||||
case MOD:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_MOD);
|
||||
break;
|
||||
case PUBLIC:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_PUBLIC);
|
||||
break;
|
||||
case ALLIANCE:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_ALLIANCE);
|
||||
break;
|
||||
case TRUCE:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_TRUCE);
|
||||
break;
|
||||
default:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_FACTION);
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch (context.fPlayer.getChatMode()) {
|
||||
case MOD:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_MOD);
|
||||
break;
|
||||
case PUBLIC:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_PUBLIC);
|
||||
break;
|
||||
case ALLIANCE:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_ALLIANCE);
|
||||
break;
|
||||
case TRUCE:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_TRUCE);
|
||||
break;
|
||||
default:
|
||||
context.msg(TL.COMMAND_CHAT_MODE_FACTION);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHAT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHAT_DESCRIPTION;
|
||||
}
|
||||
|
||||
protected class ChatBrigadier implements BrigadierProvider {
|
||||
@Override
|
||||
public ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent) {
|
||||
return parent.then(LiteralArgumentBuilder.literal("public"))
|
||||
.then(LiteralArgumentBuilder.literal("mod"))
|
||||
.then(LiteralArgumentBuilder.literal("alliance"))
|
||||
.then(LiteralArgumentBuilder.literal("faction"))
|
||||
.then(LiteralArgumentBuilder.literal("truce"));
|
||||
}
|
||||
}
|
||||
protected class ChatBrigadier implements BrigadierProvider {
|
||||
@Override
|
||||
public ArgumentBuilder<Object, ?> get(ArgumentBuilder<Object, ?> parent) {
|
||||
return parent.then(LiteralArgumentBuilder.literal("public"))
|
||||
.then(LiteralArgumentBuilder.literal("mod"))
|
||||
.then(LiteralArgumentBuilder.literal("alliance"))
|
||||
.then(LiteralArgumentBuilder.literal("faction"))
|
||||
.then(LiteralArgumentBuilder.literal("truce"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -6,32 +6,32 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdChatSpy extends FCommand {
|
||||
|
||||
public CmdChatSpy() {
|
||||
super();
|
||||
this.aliases.add("chatspy");
|
||||
public CmdChatSpy() {
|
||||
super();
|
||||
this.aliases.add("chatspy");
|
||||
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHATSPY)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHATSPY)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.setSpyingChat(context.argAsBool(0, !context.fPlayer.isSpyingChat()));
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.setSpyingChat(context.argAsBool(0, !context.fPlayer.isSpyingChat()));
|
||||
|
||||
if (context.fPlayer.isSpyingChat()) {
|
||||
context.msg(TL.COMMAND_CHATSPY_ENABLE);
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_ENABLELOG.toString());
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHATSPY_DISABLE);
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_DISABLELOG.toString());
|
||||
}
|
||||
}
|
||||
if (context.fPlayer.isSpyingChat()) {
|
||||
context.msg(TL.COMMAND_CHATSPY_ENABLE);
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_ENABLELOG.toString());
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHATSPY_DISABLE);
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CHATSPY_DISABLELOG.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHATSPY_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHATSPY_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -6,60 +6,60 @@ import com.massivecraft.factions.util.WarmUpUtil;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdCheckpoint extends FCommand {
|
||||
public CmdCheckpoint() {
|
||||
super();
|
||||
this.aliases.add("checkp");
|
||||
this.aliases.add("checkpoint");
|
||||
this.aliases.add("cpoint");
|
||||
public CmdCheckpoint() {
|
||||
super();
|
||||
this.aliases.add("checkp");
|
||||
this.aliases.add("checkpoint");
|
||||
this.aliases.add("cpoint");
|
||||
|
||||
this.optionalArgs.put("set", "");
|
||||
this.optionalArgs.put("set", "");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHECKPOINT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CHECKPOINT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("checkpoints.Enabled")) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (context.args.size() == 1) {
|
||||
FLocation myLocation = new FLocation(context.player.getLocation());
|
||||
Faction myLocFaction = Board.getInstance().getFactionAt(myLocation);
|
||||
if (myLocFaction == Factions.getInstance().getWilderness() || myLocFaction == context.faction) {
|
||||
context.faction.setCheckpoint(context.player.getLocation());
|
||||
context.msg(TL.COMMAND_CHECKPOINT_SET);
|
||||
return;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_INVALIDLOCATION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (context.faction.getCheckpoint() == null) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_NOT_SET);
|
||||
return;
|
||||
}
|
||||
FLocation checkLocation = new FLocation(context.faction.getCheckpoint());
|
||||
Faction checkfaction = Board.getInstance().getFactionAt(checkLocation);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("checkpoints.Enabled")) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (context.args.size() == 1) {
|
||||
FLocation myLocation = new FLocation(context.player.getLocation());
|
||||
Faction myLocFaction = Board.getInstance().getFactionAt(myLocation);
|
||||
if (myLocFaction == Factions.getInstance().getWilderness() || myLocFaction == context.faction) {
|
||||
context.faction.setCheckpoint(context.player.getLocation());
|
||||
context.msg(TL.COMMAND_CHECKPOINT_SET);
|
||||
return;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_INVALIDLOCATION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (context.faction.getCheckpoint() == null) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_NOT_SET);
|
||||
return;
|
||||
}
|
||||
FLocation checkLocation = new FLocation(context.faction.getCheckpoint());
|
||||
Faction checkfaction = Board.getInstance().getFactionAt(checkLocation);
|
||||
|
||||
if (checkfaction.getId().equals(Factions.getInstance().getWilderness().getId()) || checkfaction.getId().equals(context.faction.getId())) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_GO);
|
||||
if (checkfaction.getId().equals(Factions.getInstance().getWilderness().getId()) || checkfaction.getId().equals(context.faction.getId())) {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_GO);
|
||||
|
||||
context.doWarmUp(WarmUpUtil.Warmup.CHECKPOINT, TL.WARMUPS_NOTIFY_TELEPORT, "Checkpoint", () -> {
|
||||
context.player.teleport(context.faction.getCheckpoint());
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-checkpoint", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_CLAIMED);
|
||||
}
|
||||
context.doWarmUp(WarmUpUtil.Warmup.CHECKPOINT, TL.WARMUPS_NOTIFY_TELEPORT, "Checkpoint", () -> {
|
||||
context.player.teleport(context.faction.getCheckpoint());
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-checkpoint", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_CHECKPOINT_CLAIMED);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHECKPOINT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHECKPOINT_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -10,78 +10,78 @@ import mkremins.fanciful.FancyMessage;
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdColeader extends FCommand {
|
||||
public CmdColeader() {
|
||||
super();
|
||||
this.aliases.add("co");
|
||||
this.aliases.add("setcoleader");
|
||||
this.aliases.add("coleader");
|
||||
this.aliases.add("setco");
|
||||
public CmdColeader() {
|
||||
super();
|
||||
this.aliases.add("co");
|
||||
this.aliases.add("setcoleader");
|
||||
this.aliases.add("coleader");
|
||||
this.aliases.add("setco");
|
||||
|
||||
this.optionalArgs.put("player name", "name");
|
||||
this.optionalArgs.put("player name", "name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.COLEADER)
|
||||
.memberOnly()
|
||||
.withRole(Role.LEADER)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.COLEADER)
|
||||
.memberOnly()
|
||||
.withRole(Role.LEADER)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_COLEADER_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s);
|
||||
}
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_COLEADER_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s);
|
||||
}
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " coleader " + s);
|
||||
}
|
||||
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
boolean permAny = Permission.COLEADER_ANY.has(context.sender, false);
|
||||
Faction targetFaction = you.getFaction();
|
||||
boolean permAny = Permission.COLEADER_ANY.has(context.sender, false);
|
||||
Faction targetFaction = you.getFaction();
|
||||
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
||||
context.msg(TL.COMMAND_COLEADER_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
||||
context.msg(TL.COMMAND_COLEADER_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_COLEADER_SELF);
|
||||
return;
|
||||
}
|
||||
if (you == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_COLEADER_SELF);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getRole() == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_COLEADER_TARGETISADMIN);
|
||||
return;
|
||||
}
|
||||
if (you.getRole() == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_COLEADER_TARGETISADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getRole() == Role.COLEADER) {
|
||||
// Revoke
|
||||
you.setRole(Role.MODERATOR);
|
||||
targetFaction.msg(TL.COMMAND_COLEADER_REVOKED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_COLEADER_REVOKES, you.describeTo(context.fPlayer, true));
|
||||
} else {
|
||||
// Give
|
||||
you.setRole(Role.COLEADER);
|
||||
targetFaction.msg(TL.COMMAND_COLEADER_PROMOTED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||
}
|
||||
}
|
||||
if (you.getRole() == Role.COLEADER) {
|
||||
// Revoke
|
||||
you.setRole(Role.MODERATOR);
|
||||
targetFaction.msg(TL.COMMAND_COLEADER_REVOKED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_COLEADER_REVOKES, you.describeTo(context.fPlayer, true));
|
||||
} else {
|
||||
// Give
|
||||
you.setRole(Role.COLEADER);
|
||||
targetFaction.msg(TL.COMMAND_COLEADER_PROMOTED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_COLEADER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_COLEADER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,228 +16,228 @@ import java.util.Set;
|
||||
|
||||
public class CmdConfig extends FCommand {
|
||||
|
||||
private static HashMap<String, String> properFieldNames = new HashMap<>();
|
||||
private static HashMap<String, String> properFieldNames = new HashMap<>();
|
||||
|
||||
public CmdConfig() {
|
||||
super();
|
||||
this.aliases.add("config");
|
||||
public CmdConfig() {
|
||||
super();
|
||||
this.aliases.add("config");
|
||||
|
||||
this.requiredArgs.add("setting");
|
||||
this.requiredArgs.add("value");
|
||||
this.requiredArgs.add("setting");
|
||||
this.requiredArgs.add("value");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CONFIG)
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CONFIG)
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// store a lookup map of lowercase field names paired with proper capitalization field names
|
||||
// that way, if the person using this command messes up the capitalization, we can fix that
|
||||
if (properFieldNames.isEmpty()) {
|
||||
Field[] fields = Conf.class.getDeclaredFields();
|
||||
for (Field field : fields) {
|
||||
properFieldNames.put(field.getName().toLowerCase(), field.getName());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// store a lookup map of lowercase field names paired with proper capitalization field names
|
||||
// that way, if the person using this command messes up the capitalization, we can fix that
|
||||
if (properFieldNames.isEmpty()) {
|
||||
Field[] fields = Conf.class.getDeclaredFields();
|
||||
for (Field field : fields) {
|
||||
properFieldNames.put(field.getName().toLowerCase(), field.getName());
|
||||
}
|
||||
}
|
||||
|
||||
String field = context.argAsString(0).toLowerCase();
|
||||
if (field.startsWith("\"") && field.endsWith("\"")) {
|
||||
field = field.substring(1, field.length() - 1);
|
||||
}
|
||||
String fieldName = properFieldNames.get(field);
|
||||
String field = context.argAsString(0).toLowerCase();
|
||||
if (field.startsWith("\"") && field.endsWith("\"")) {
|
||||
field = field.substring(1, field.length() - 1);
|
||||
}
|
||||
String fieldName = properFieldNames.get(field);
|
||||
|
||||
if (fieldName == null || fieldName.isEmpty()) {
|
||||
context.msg(TL.COMMAND_CONFIG_NOEXIST, field);
|
||||
return;
|
||||
}
|
||||
if (fieldName == null || fieldName.isEmpty()) {
|
||||
context.msg(TL.COMMAND_CONFIG_NOEXIST, field);
|
||||
return;
|
||||
}
|
||||
|
||||
String success;
|
||||
String success;
|
||||
|
||||
StringBuilder value = new StringBuilder(context.args.get(1));
|
||||
for (int i = 2; i < context.args.size(); i++) {
|
||||
value.append(' ').append(context.args.get(i));
|
||||
}
|
||||
StringBuilder value = new StringBuilder(context.args.get(1));
|
||||
for (int i = 2; i < context.args.size(); i++) {
|
||||
value.append(' ').append(context.args.get(i));
|
||||
}
|
||||
|
||||
try {
|
||||
Field target = Conf.class.getField(fieldName);
|
||||
try {
|
||||
Field target = Conf.class.getField(fieldName);
|
||||
|
||||
// boolean
|
||||
if (target.getType() == boolean.class) {
|
||||
boolean targetValue = context.strAsBool(value.toString());
|
||||
target.setBoolean(null, targetValue);
|
||||
// boolean
|
||||
if (target.getType() == boolean.class) {
|
||||
boolean targetValue = context.strAsBool(value.toString());
|
||||
target.setBoolean(null, targetValue);
|
||||
|
||||
if (targetValue) {
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_SET_TRUE.toString();
|
||||
} else {
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_SET_FALSE.toString();
|
||||
}
|
||||
}
|
||||
if (targetValue) {
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_SET_TRUE.toString();
|
||||
} else {
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_SET_FALSE.toString();
|
||||
}
|
||||
}
|
||||
|
||||
// int
|
||||
else if (target.getType() == int.class) {
|
||||
// int
|
||||
else if (target.getType() == int.class) {
|
||||
try {
|
||||
int intVal = Integer.parseInt(value.toString());
|
||||
target.setInt(null, intVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + intVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INTREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// long
|
||||
else if (target.getType() == long.class) {
|
||||
try {
|
||||
long longVal = Long.parseLong(value.toString());
|
||||
target.setLong(null, longVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + longVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_LONGREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// double
|
||||
else if (target.getType() == double.class) {
|
||||
try {
|
||||
double doubleVal = Double.parseDouble(value.toString());
|
||||
target.setDouble(null, doubleVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + doubleVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_DOUBLEREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// float
|
||||
else if (target.getType() == float.class) {
|
||||
try {
|
||||
float floatVal = Float.parseFloat(value.toString());
|
||||
target.setFloat(null, floatVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + floatVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_FLOATREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// String
|
||||
else if (target.getType() == String.class) {
|
||||
target.set(null, value.toString());
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + value + "\".";
|
||||
}
|
||||
|
||||
// ChatColor
|
||||
else if (target.getType() == ChatColor.class) {
|
||||
ChatColor newColor = null;
|
||||
try {
|
||||
newColor = ChatColor.valueOf(value.toString().toUpperCase());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
|
||||
}
|
||||
if (newColor == null) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLOUR.format(fieldName, value.toString().toUpperCase()));
|
||||
return;
|
||||
}
|
||||
target.set(null, newColor);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_COLOURSET.toString() + value.toString().toUpperCase() + "\".";
|
||||
}
|
||||
|
||||
// Set<?> or other parameterized collection
|
||||
else if (target.getGenericType() instanceof ParameterizedType) {
|
||||
ParameterizedType targSet = (ParameterizedType) target.getGenericType();
|
||||
Type innerType = targSet.getActualTypeArguments()[0];
|
||||
|
||||
// not a Set, somehow, and that should be the only collection we're using in Conf.java
|
||||
if (targSet.getRawType() != Set.class) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLLECTION.format(fieldName));
|
||||
return;
|
||||
}
|
||||
|
||||
// Set<Material>
|
||||
else if (innerType == Material.class) {
|
||||
Material newMat = null;
|
||||
try {
|
||||
int intVal = Integer.parseInt(value.toString());
|
||||
target.setInt(null, intVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + intVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INTREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// long
|
||||
else if (target.getType() == long.class) {
|
||||
try {
|
||||
long longVal = Long.parseLong(value.toString());
|
||||
target.setLong(null, longVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + longVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_LONGREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// double
|
||||
else if (target.getType() == double.class) {
|
||||
try {
|
||||
double doubleVal = Double.parseDouble(value.toString());
|
||||
target.setDouble(null, doubleVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + doubleVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_DOUBLEREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// float
|
||||
else if (target.getType() == float.class) {
|
||||
try {
|
||||
float floatVal = Float.parseFloat(value.toString());
|
||||
target.setFloat(null, floatVal);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + floatVal + ".";
|
||||
} catch (NumberFormatException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_FLOATREQUIRED.format(fieldName));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// String
|
||||
else if (target.getType() == String.class) {
|
||||
target.set(null, value.toString());
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_OPTIONSET.toString() + value + "\".";
|
||||
}
|
||||
|
||||
// ChatColor
|
||||
else if (target.getType() == ChatColor.class) {
|
||||
ChatColor newColor = null;
|
||||
try {
|
||||
newColor = ChatColor.valueOf(value.toString().toUpperCase());
|
||||
newMat = Material.valueOf(value.toString().toUpperCase());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
|
||||
}
|
||||
if (newColor == null) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLOUR.format(fieldName, value.toString().toUpperCase()));
|
||||
return;
|
||||
}
|
||||
target.set(null, newColor);
|
||||
success = "\"" + fieldName + TL.COMMAND_CONFIG_COLOURSET.toString() + value.toString().toUpperCase() + "\".";
|
||||
}
|
||||
|
||||
// Set<?> or other parameterized collection
|
||||
else if (target.getGenericType() instanceof ParameterizedType) {
|
||||
ParameterizedType targSet = (ParameterizedType) target.getGenericType();
|
||||
Type innerType = targSet.getActualTypeArguments()[0];
|
||||
|
||||
// not a Set, somehow, and that should be the only collection we're using in Conf.java
|
||||
if (targSet.getRawType() != Set.class) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_COLLECTION.format(fieldName));
|
||||
return;
|
||||
if (newMat == null) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_MATERIAL.format(fieldName, value.toString().toUpperCase()));
|
||||
return;
|
||||
}
|
||||
|
||||
// Set<Material>
|
||||
else if (innerType == Material.class) {
|
||||
Material newMat = null;
|
||||
try {
|
||||
newMat = Material.valueOf(value.toString().toUpperCase());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
@SuppressWarnings("unchecked") Set<Material> matSet = (Set<Material>) target.get(null);
|
||||
|
||||
}
|
||||
if (newMat == null) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_MATERIAL.format(fieldName, value.toString().toUpperCase()));
|
||||
return;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked") Set<Material> matSet = (Set<Material>) target.get(null);
|
||||
|
||||
// Material already present, so remove it
|
||||
if (matSet.contains(newMat)) {
|
||||
matSet.remove(newMat);
|
||||
target.set(null, matSet);
|
||||
success = TL.COMMAND_CONFIG_MATERIAL_REMOVED.format(fieldName, value.toString().toUpperCase());
|
||||
}
|
||||
// Material not present yet, add it
|
||||
else {
|
||||
matSet.add(newMat);
|
||||
target.set(null, matSet);
|
||||
success = TL.COMMAND_CONFIG_MATERIAL_ADDED.format(fieldName, value.toString().toUpperCase());
|
||||
}
|
||||
// Material already present, so remove it
|
||||
if (matSet.contains(newMat)) {
|
||||
matSet.remove(newMat);
|
||||
target.set(null, matSet);
|
||||
success = TL.COMMAND_CONFIG_MATERIAL_REMOVED.format(fieldName, value.toString().toUpperCase());
|
||||
}
|
||||
|
||||
// Set<String>
|
||||
else if (innerType == String.class) {
|
||||
@SuppressWarnings("unchecked") Set<String> stringSet = (Set<String>) target.get(null);
|
||||
|
||||
// String already present, so remove it
|
||||
if (stringSet.contains(value.toString())) {
|
||||
stringSet.remove(value.toString());
|
||||
target.set(null, stringSet);
|
||||
success = TL.COMMAND_CONFIG_SET_REMOVED.format(fieldName, value.toString());
|
||||
}
|
||||
// String not present yet, add it
|
||||
else {
|
||||
stringSet.add(value.toString());
|
||||
target.set(null, stringSet);
|
||||
success = TL.COMMAND_CONFIG_SET_ADDED.format(fieldName, value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// Set of unknown type
|
||||
// Material not present yet, add it
|
||||
else {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_TYPESET.format(fieldName));
|
||||
return;
|
||||
matSet.add(newMat);
|
||||
target.set(null, matSet);
|
||||
success = TL.COMMAND_CONFIG_MATERIAL_ADDED.format(fieldName, value.toString().toUpperCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// unknown type
|
||||
else {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_TYPE.format(fieldName, target.getClass().getName()));
|
||||
// Set<String>
|
||||
else if (innerType == String.class) {
|
||||
@SuppressWarnings("unchecked") Set<String> stringSet = (Set<String>) target.get(null);
|
||||
|
||||
// String already present, so remove it
|
||||
if (stringSet.contains(value.toString())) {
|
||||
stringSet.remove(value.toString());
|
||||
target.set(null, stringSet);
|
||||
success = TL.COMMAND_CONFIG_SET_REMOVED.format(fieldName, value.toString());
|
||||
}
|
||||
// String not present yet, add it
|
||||
else {
|
||||
stringSet.add(value.toString());
|
||||
target.set(null, stringSet);
|
||||
success = TL.COMMAND_CONFIG_SET_ADDED.format(fieldName, value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// Set of unknown type
|
||||
else {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_INVALID_TYPESET.format(fieldName));
|
||||
return;
|
||||
}
|
||||
} catch (NoSuchFieldException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_MATCHING.format(fieldName));
|
||||
return;
|
||||
} catch (IllegalAccessException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_SETTING.format(fieldName, value.toString()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!success.isEmpty()) {
|
||||
if (context.sender instanceof Player) {
|
||||
context.sendMessage(success);
|
||||
FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format((Player) context.sender));
|
||||
} else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log
|
||||
{
|
||||
FactionsPlugin.getInstance().log(success);
|
||||
}
|
||||
}
|
||||
// save change to disk
|
||||
Conf.save();
|
||||
}
|
||||
// unknown type
|
||||
else {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_TYPE.format(fieldName, target.getClass().getName()));
|
||||
return;
|
||||
}
|
||||
} catch (NoSuchFieldException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_MATCHING.format(fieldName));
|
||||
return;
|
||||
} catch (IllegalAccessException ex) {
|
||||
context.sendMessage(TL.COMMAND_CONFIG_ERROR_SETTING.format(fieldName, value.toString()));
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CONFIG_DESCRIPTION;
|
||||
}
|
||||
if (!success.isEmpty()) {
|
||||
if (context.sender instanceof Player) {
|
||||
context.sendMessage(success);
|
||||
FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format((Player) context.sender));
|
||||
} else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log
|
||||
{
|
||||
FactionsPlugin.getInstance().log(success);
|
||||
}
|
||||
}
|
||||
// save change to disk
|
||||
Conf.save();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CONFIG_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,36 +9,36 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
public class CmdConvert extends FCommand {
|
||||
|
||||
public CmdConvert() {
|
||||
this.aliases.add("convert");
|
||||
this.requiredArgs.add("[MYSQL|JSON]");
|
||||
public CmdConvert() {
|
||||
this.aliases.add("convert");
|
||||
this.requiredArgs.add("[MYSQL|JSON]");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CONVERT)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CONVERT)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!(context.sender instanceof ConsoleCommandSender)) {
|
||||
context.sender.sendMessage(TL.GENERIC_CONSOLEONLY.toString());
|
||||
}
|
||||
Backend nb = Backend.valueOf(context.argAsString(0).toUpperCase());
|
||||
if (nb == Conf.backEnd) {
|
||||
context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_RUNNING.toString());
|
||||
return;
|
||||
}
|
||||
if (nb == Backend.JSON) {
|
||||
FactionsJSON.convertTo();
|
||||
} else {
|
||||
context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_INVALID.toString());
|
||||
return;
|
||||
}
|
||||
Conf.backEnd = nb;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!(context.sender instanceof ConsoleCommandSender)) {
|
||||
context.sender.sendMessage(TL.GENERIC_CONSOLEONLY.toString());
|
||||
}
|
||||
Backend nb = Backend.valueOf(context.argAsString(0).toUpperCase());
|
||||
if (nb == Conf.backEnd) {
|
||||
context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_RUNNING.toString());
|
||||
return;
|
||||
}
|
||||
if (nb == Backend.JSON) {
|
||||
FactionsJSON.convertTo();
|
||||
} else {
|
||||
context.sender.sendMessage(TL.COMMAND_CONVERT_BACKEND_INVALID.toString());
|
||||
return;
|
||||
}
|
||||
Conf.backEnd = nb;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CONVERT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CONVERT_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -7,31 +7,31 @@ import org.bukkit.Location;
|
||||
|
||||
public class CmdCoords extends FCommand {
|
||||
|
||||
public CmdCoords() {
|
||||
super();
|
||||
this.aliases.add("coords");
|
||||
this.aliases.add("coord");
|
||||
public CmdCoords() {
|
||||
super();
|
||||
this.aliases.add("coords");
|
||||
this.aliases.add("coord");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.COORD)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.COORD)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Location location = context.player.getLocation();
|
||||
String message = TL.COMMAND_COORDS_MESSAGE.toString().replace("{player}", context.player.getDisplayName()).replace("{x}", (int) location.getX() + "")
|
||||
.replace("{y}", (int) location.getY() + "").replace("{z}", (int) location.getZ() + "").replace("{world}", location.getWorld().getName());
|
||||
for (FPlayer fPlayer : context.faction.getFPlayers()) {
|
||||
fPlayer.sendMessage(message);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Location location = context.player.getLocation();
|
||||
String message = TL.COMMAND_COORDS_MESSAGE.toString().replace("{player}", context.player.getDisplayName()).replace("{x}", (int) location.getX() + "")
|
||||
.replace("{y}", (int) location.getY() + "").replace("{z}", (int) location.getZ() + "").replace("{world}", location.getWorld().getName());
|
||||
for (FPlayer fPlayer : context.faction.getFPlayers()) {
|
||||
fPlayer.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_COORDS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_COORDS_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -15,94 +15,94 @@ import java.util.ArrayList;
|
||||
|
||||
public class CmdCreate extends FCommand {
|
||||
|
||||
public CmdCreate() {
|
||||
super();
|
||||
this.aliases.add("create");
|
||||
public CmdCreate() {
|
||||
super();
|
||||
this.aliases.add("create");
|
||||
|
||||
this.requiredArgs.add("faction tag");
|
||||
this.requiredArgs.add("faction tag");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CREATE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.CREATE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String tag = context.argAsString(0);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String tag = context.argAsString(0);
|
||||
|
||||
if (context.fPlayer.hasFaction()) {
|
||||
context.msg(TL.COMMAND_CREATE_MUSTLEAVE);
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer.hasFaction()) {
|
||||
context.msg(TL.COMMAND_CREATE_MUSTLEAVE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Factions.getInstance().isTagTaken(tag)) {
|
||||
context.msg(TL.COMMAND_CREATE_INUSE);
|
||||
return;
|
||||
}
|
||||
if (Factions.getInstance().isTagTaken(tag)) {
|
||||
context.msg(TL.COMMAND_CREATE_INUSE);
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> tagValidationErrors = MiscUtil.validateTag(tag);
|
||||
if (tagValidationErrors.size() > 0) {
|
||||
context.sendMessage(tagValidationErrors);
|
||||
return;
|
||||
}
|
||||
ArrayList<String> tagValidationErrors = MiscUtil.validateTag(tag);
|
||||
if (tagValidationErrors.size() > 0) {
|
||||
context.sendMessage(tagValidationErrors);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the faction creation event (cancellable)
|
||||
FactionCreateEvent createEvent = new FactionCreateEvent(context.player, tag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(createEvent);
|
||||
if (createEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
// trigger the faction creation event (cancellable)
|
||||
FactionCreateEvent createEvent = new FactionCreateEvent(context.player, tag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(createEvent);
|
||||
if (createEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE, TL.COMMAND_CREATE_FORCREATE)) {
|
||||
return;
|
||||
}
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE, TL.COMMAND_CREATE_FORCREATE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Faction faction = Factions.getInstance().createFaction();
|
||||
Faction faction = Factions.getInstance().createFaction();
|
||||
|
||||
// TODO: Why would this even happen??? Auto increment clash??
|
||||
if (faction == null) {
|
||||
context.msg(TL.COMMAND_CREATE_ERROR);
|
||||
return;
|
||||
}
|
||||
// TODO: Why would this even happen??? Auto increment clash??
|
||||
if (faction == null) {
|
||||
context.msg(TL.COMMAND_CREATE_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
// finish setting up the Faction
|
||||
faction.setTag(tag);
|
||||
// finish setting up the Faction
|
||||
faction.setTag(tag);
|
||||
|
||||
// trigger the faction join event for the creator
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.CREATE);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
// join event cannot be cancelled or you'll have an empty faction
|
||||
// trigger the faction join event for the creator
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.CREATE);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
// join event cannot be cancelled or you'll have an empty faction
|
||||
|
||||
// finish setting up the FPlayer
|
||||
context.fPlayer.setFaction(faction, false);
|
||||
// We should consider adding the role just AFTER joining the faction.
|
||||
// That way we don't have to mess up deleting more stuff.
|
||||
// And prevent the user from being returned to NORMAL after deleting his old faction.
|
||||
context.fPlayer.setRole(Role.LEADER);
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-creation-broadcast", true)) {
|
||||
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
follower.msg(TL.COMMAND_CREATE_CREATED, context.fPlayer.getName(), faction.getTag(follower));
|
||||
}
|
||||
}
|
||||
context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context));
|
||||
if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance);
|
||||
if (Conf.logFactionCreate)
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CREATE_CREATEDLOG.toString() + tag);
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled"))
|
||||
context.msg(TL.COMMAND_PAYPALSET_CREATED);
|
||||
if (Conf.useCustomDefaultPermissions) faction.setDefaultPerms();
|
||||
if (Conf.usePermissionHints) context.msg(TL.COMMAND_HINT_PERMISSION);
|
||||
}
|
||||
// finish setting up the FPlayer
|
||||
context.fPlayer.setFaction(faction, false);
|
||||
// We should consider adding the role just AFTER joining the faction.
|
||||
// That way we don't have to mess up deleting more stuff.
|
||||
// And prevent the user from being returned to NORMAL after deleting his old faction.
|
||||
context.fPlayer.setRole(Role.LEADER);
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-creation-broadcast", true)) {
|
||||
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
follower.msg(TL.COMMAND_CREATE_CREATED, context.fPlayer.getName(), faction.getTag(follower));
|
||||
}
|
||||
}
|
||||
context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context));
|
||||
if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance);
|
||||
if (Conf.logFactionCreate)
|
||||
FactionsPlugin.getInstance().log(context.fPlayer.getName() + TL.COMMAND_CREATE_CREATEDLOG.toString() + tag);
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled"))
|
||||
context.msg(TL.COMMAND_PAYPALSET_CREATED);
|
||||
if (Conf.useCustomDefaultPermissions) faction.setDefaultPerms();
|
||||
if (Conf.usePermissionHints) context.msg(TL.COMMAND_HINT_PERMISSION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CREATE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CREATE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -14,71 +14,71 @@ import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdDeinvite extends FCommand {
|
||||
|
||||
public CmdDeinvite() {
|
||||
super();
|
||||
this.aliases.add("deinvite");
|
||||
this.aliases.add("deinv");
|
||||
public CmdDeinvite() {
|
||||
super();
|
||||
this.aliases.add("deinvite");
|
||||
this.aliases.add("deinv");
|
||||
|
||||
this.optionalArgs.put("player name", "name");
|
||||
this.optionalArgs.put("player name", "name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DEINVITE)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DEINVITE)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
|
||||
// Check if arg 0 == null do you don't have
|
||||
// `No player "null" could be found.` message.
|
||||
if (context.args.get(0) == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
// Check if arg 0 == null do you don't have
|
||||
// `No player "null" could be found.` message.
|
||||
if (context.args.get(0) == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE);
|
||||
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
||||
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites");
|
||||
return;
|
||||
}
|
||||
}
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE);
|
||||
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
||||
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getFaction() == context.faction) {
|
||||
context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag());
|
||||
context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
if (you.getFaction() == context.faction) {
|
||||
context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag());
|
||||
context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.deinvite(you);
|
||||
context.faction.deinvite(you);
|
||||
|
||||
you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you));
|
||||
you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you));
|
||||
|
||||
context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction));
|
||||
}
|
||||
context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DEINVITE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DEINVITE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -7,40 +7,40 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdDelFWarp extends FCommand {
|
||||
|
||||
public CmdDelFWarp() {
|
||||
super();
|
||||
this.aliases.add("delwarp");
|
||||
this.aliases.add("dw");
|
||||
this.aliases.add("deletewarp");
|
||||
this.requiredArgs.add("warp name");
|
||||
public CmdDelFWarp() {
|
||||
super();
|
||||
this.aliases.add("delwarp");
|
||||
this.aliases.add("dw");
|
||||
this.aliases.add("deletewarp");
|
||||
this.requiredArgs.add("warp name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String warp = context.argAsString(0);
|
||||
if (context.faction.isWarp(warp)) {
|
||||
if (!transact(context.fPlayer, context)) {
|
||||
return;
|
||||
}
|
||||
context.faction.removeWarp(warp);
|
||||
context.msg(TL.COMMAND_DELFWARP_DELETED, warp);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_DELFWARP_INVALID, warp);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String warp = context.argAsString(0);
|
||||
if (context.faction.isWarp(warp)) {
|
||||
if (!transact(context.fPlayer, context)) {
|
||||
return;
|
||||
}
|
||||
context.faction.removeWarp(warp);
|
||||
context.msg(TL.COMMAND_DELFWARP_DELETED, warp);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_DELFWARP_INVALID, warp);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.delwarp", 5), TL.COMMAND_DELFWARP_TODELETE.toString(), TL.COMMAND_DELFWARP_FORDELETE.toString());
|
||||
}
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.delwarp", 5), TL.COMMAND_DELFWARP_TODELETE.toString(), TL.COMMAND_DELFWARP_FORDELETE.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DELFWARP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DELFWARP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,47 +9,47 @@ import com.massivecraft.factions.zcore.util.TextUtil;
|
||||
|
||||
public class CmdDescription extends FCommand {
|
||||
|
||||
public CmdDescription() {
|
||||
super();
|
||||
this.aliases.add("desc");
|
||||
this.aliases.add("description");
|
||||
public CmdDescription() {
|
||||
super();
|
||||
this.aliases.add("desc");
|
||||
this.aliases.add("description");
|
||||
|
||||
this.requiredArgs.add("desc");
|
||||
this.requiredArgs.add("desc");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DESCRIPTION)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DESCRIPTION)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostDesc, TL.COMMAND_DESCRIPTION_TOCHANGE, TL.COMMAND_DESCRIPTION_FORCHANGE)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostDesc, TL.COMMAND_DESCRIPTION_TOCHANGE, TL.COMMAND_DESCRIPTION_FORCHANGE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up
|
||||
// And replace all the % because it messes with string formatting and this is easy way around that.
|
||||
context.faction.setDescription(TextUtil.implode(context.args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2"));
|
||||
// since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up
|
||||
// And replace all the % because it messes with string formatting and this is easy way around that.
|
||||
context.faction.setDescription(TextUtil.implode(context.args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2"));
|
||||
|
||||
if (!Conf.broadcastDescriptionChanges) {
|
||||
context.msg(TL.COMMAND_DESCRIPTION_CHANGED, context.faction.describeTo(context.fPlayer));
|
||||
context.sendMessage(context.faction.getDescription());
|
||||
return;
|
||||
}
|
||||
if (!Conf.broadcastDescriptionChanges) {
|
||||
context.msg(TL.COMMAND_DESCRIPTION_CHANGED, context.faction.describeTo(context.fPlayer));
|
||||
context.sendMessage(context.faction.getDescription());
|
||||
return;
|
||||
}
|
||||
|
||||
// Broadcast the description to everyone
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
fplayer.msg(TL.COMMAND_DESCRIPTION_CHANGES, context.faction.describeTo(fplayer));
|
||||
fplayer.sendMessage(context.faction.getDescription()); // players can inject "&" or "`" or "<i>" or whatever in their description; &k is particularly interesting looking
|
||||
}
|
||||
}
|
||||
// Broadcast the description to everyone
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
fplayer.msg(TL.COMMAND_DESCRIPTION_CHANGES, context.faction.describeTo(fplayer));
|
||||
fplayer.sendMessage(context.faction.getDescription()); // players can inject "&" or "`" or "<i>" or whatever in their description; &k is particularly interesting looking
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DESCRIPTION_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DESCRIPTION_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -17,85 +17,85 @@ import java.util.HashMap;
|
||||
public class CmdDisband extends FCommand {
|
||||
|
||||
|
||||
private static HashMap<String, String> disbandMap = new HashMap<>();
|
||||
private static HashMap<String, String> disbandMap = new HashMap<>();
|
||||
|
||||
|
||||
public CmdDisband() {
|
||||
super();
|
||||
this.aliases.add("disband");
|
||||
public CmdDisband() {
|
||||
super();
|
||||
this.aliases.add("disband");
|
||||
|
||||
this.optionalArgs.put("faction tag", "yours");
|
||||
this.optionalArgs.put("faction tag", "yours");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DISBAND)
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DISBAND)
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// The faction, default to your own.. but null if console sender.
|
||||
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : context.faction);
|
||||
if (faction == null) return;
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// The faction, default to your own.. but null if console sender.
|
||||
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : context.faction);
|
||||
if (faction == null) return;
|
||||
|
||||
boolean isMyFaction = context.fPlayer != null && faction == context.faction;
|
||||
boolean isMyFaction = context.fPlayer != null && faction == context.faction;
|
||||
|
||||
if (!isMyFaction) {
|
||||
if (!Permission.DISBAND_ANY.has(context.sender, true)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!isMyFaction) {
|
||||
if (!Permission.DISBAND_ANY.has(context.sender, true)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (context.fPlayer != null && !context.fPlayer.isAdminBypassing()) {
|
||||
Access access = faction.getAccess(context.fPlayer, PermissableAction.DISBAND);
|
||||
if (context.fPlayer.getRole() != Role.LEADER && faction.getFPlayerLeader() != context.fPlayer && access != Access.ALLOW) {
|
||||
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "disband " + faction.getTag());
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (context.fPlayer != null && !context.fPlayer.isAdminBypassing()) {
|
||||
Access access = faction.getAccess(context.fPlayer, PermissableAction.DISBAND);
|
||||
if (context.fPlayer.getRole() != Role.LEADER && faction.getFPlayerLeader() != context.fPlayer && access != Access.ALLOW) {
|
||||
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "disband " + faction.getTag());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_DISBAND_IMMUTABLE.toString());
|
||||
return;
|
||||
}
|
||||
if (faction.isPermanent()) {
|
||||
context.msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString());
|
||||
return;
|
||||
}
|
||||
if (!faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_DISBAND_IMMUTABLE.toString());
|
||||
return;
|
||||
}
|
||||
if (faction.isPermanent()) {
|
||||
context.msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
// THis means they are a console command sender.
|
||||
if (context.player == null) {
|
||||
faction.disband(null, PlayerDisbandReason.PLUGIN);
|
||||
return;
|
||||
}
|
||||
// THis means they are a console command sender.
|
||||
if (context.player == null) {
|
||||
faction.disband(null, PlayerDisbandReason.PLUGIN);
|
||||
return;
|
||||
}
|
||||
|
||||
// check for tnt before disbanding.
|
||||
if (!disbandMap.containsKey(context.player.getUniqueId().toString()) && faction.getTnt() > 0) {
|
||||
context.msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + ""));
|
||||
disbandMap.put(context.player.getUniqueId().toString(), faction.getId());
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> disbandMap.remove(context.player.getUniqueId().toString()), 200L);
|
||||
} else if (faction.getId().equals(disbandMap.get(context.player.getUniqueId().toString())) || faction.getTnt() == 0) {
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-disband-broadcast", true)) {
|
||||
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String amountString = context.sender instanceof ConsoleCommandSender ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(follower);
|
||||
UtilFly.checkFly(context.fPlayer, Board.getInstance().getFactionAt(new FLocation(follower)));
|
||||
if (follower.getFaction() == faction) {
|
||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_YOURS, amountString);
|
||||
} else {
|
||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower));
|
||||
}
|
||||
// check for tnt before disbanding.
|
||||
if (!disbandMap.containsKey(context.player.getUniqueId().toString()) && faction.getTnt() > 0) {
|
||||
context.msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + ""));
|
||||
disbandMap.put(context.player.getUniqueId().toString(), faction.getId());
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.getInstance(), () -> disbandMap.remove(context.player.getUniqueId().toString()), 200L);
|
||||
} else if (faction.getId().equals(disbandMap.get(context.player.getUniqueId().toString())) || faction.getTnt() == 0) {
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("faction-disband-broadcast", true)) {
|
||||
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String amountString = context.sender instanceof ConsoleCommandSender ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(follower);
|
||||
UtilFly.checkFly(context.fPlayer, Board.getInstance().getFactionAt(new FLocation(follower)));
|
||||
if (follower.getFaction() == faction) {
|
||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_YOURS, amountString);
|
||||
} else {
|
||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower));
|
||||
}
|
||||
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
||||
} else {
|
||||
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
||||
context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
||||
} else {
|
||||
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
||||
context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DISBAND_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_DISBAND_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,36 +9,36 @@ import java.util.UUID;
|
||||
|
||||
public class CmdFGlobal extends FCommand {
|
||||
|
||||
public static List<UUID> toggled = new ArrayList<>();
|
||||
public static List<UUID> toggled = new ArrayList<>();
|
||||
|
||||
public CmdFGlobal() {
|
||||
super();
|
||||
this.aliases.add("gchat");
|
||||
this.aliases.add("global");
|
||||
this.aliases.add("globalchat");
|
||||
public CmdFGlobal() {
|
||||
super();
|
||||
this.aliases.add("gchat");
|
||||
this.aliases.add("global");
|
||||
this.aliases.add("globalchat");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.GLOBALCHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.GLOBALCHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// /f global
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// /f global
|
||||
|
||||
if (toggled.contains(context.player.getUniqueId())) {
|
||||
toggled.remove(context.player.getUniqueId());
|
||||
} else {
|
||||
toggled.add(context.player.getUniqueId());
|
||||
}
|
||||
if (toggled.contains(context.player.getUniqueId())) {
|
||||
toggled.remove(context.player.getUniqueId());
|
||||
} else {
|
||||
toggled.add(context.player.getUniqueId());
|
||||
}
|
||||
|
||||
context.msg(TL.COMMAND_F_GLOBAL_TOGGLE, toggled.contains(context.player.getUniqueId()) ? "disabled" : "enabled");
|
||||
}
|
||||
context.msg(TL.COMMAND_F_GLOBAL_TOGGLE, toggled.contains(context.player.getUniqueId()) ? "disabled" : "enabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_F_GLOBAL_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_F_GLOBAL_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,63 +14,63 @@ import java.util.UUID;
|
||||
|
||||
public class CmdFWarp extends FCommand {
|
||||
|
||||
public CmdFWarp() {
|
||||
super();
|
||||
this.aliases.add("warp");
|
||||
this.aliases.add("warps");
|
||||
this.optionalArgs.put("warpname", "warpname");
|
||||
this.optionalArgs.put("password", "password");
|
||||
public CmdFWarp() {
|
||||
super();
|
||||
this.aliases.add("warp");
|
||||
this.aliases.add("warps");
|
||||
this.optionalArgs.put("warpname", "warpname");
|
||||
this.optionalArgs.put("password", "password");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.WARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.WARP)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.WARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.WARP)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
|
||||
if (context.args.size() == 0) {
|
||||
new FactionWarpsFrame(context.faction).buildGUI(context.fPlayer);
|
||||
} else if (context.args.size() > 2) {
|
||||
context.msg(TL.COMMAND_FWARP_COMMANDFORMAT);
|
||||
} else {
|
||||
final String warpName = context.argAsString(0);
|
||||
final String passwordAttempt = context.argAsString(1);
|
||||
if (context.args.size() == 0) {
|
||||
new FactionWarpsFrame(context.faction).buildGUI(context.fPlayer);
|
||||
} else if (context.args.size() > 2) {
|
||||
context.msg(TL.COMMAND_FWARP_COMMANDFORMAT);
|
||||
} else {
|
||||
final String warpName = context.argAsString(0);
|
||||
final String passwordAttempt = context.argAsString(1);
|
||||
|
||||
if (context.faction.isWarp(context.argAsString(0))) {
|
||||
if (context.faction.isWarp(context.argAsString(0))) {
|
||||
|
||||
// Check if requires password and if so, check if valid. CASE SENSITIVE
|
||||
if (context.faction.hasWarpPassword(warpName) && !context.faction.isWarpPassword(warpName, passwordAttempt)) {
|
||||
context.faction.msg(TL.COMMAND_FWARP_INVALID_PASSWORD);
|
||||
return;
|
||||
// Check if requires password and if so, check if valid. CASE SENSITIVE
|
||||
if (context.faction.hasWarpPassword(warpName) && !context.faction.isWarpPassword(warpName, passwordAttempt)) {
|
||||
context.faction.msg(TL.COMMAND_FWARP_INVALID_PASSWORD);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check transaction AFTER password check.
|
||||
if (!transact(context.fPlayer, context)) return;
|
||||
|
||||
final FPlayer fPlayer = context.fPlayer;
|
||||
final UUID uuid = context.player.getUniqueId();
|
||||
context.doWarmUp(WarmUpUtil.Warmup.WARP, TL.WARMUPS_NOTIFY_TELEPORT, warpName, () -> {
|
||||
Player player = Bukkit.getPlayer(uuid);
|
||||
if (player != null) {
|
||||
player.teleport(fPlayer.getFaction().getWarp(warpName).getLocation());
|
||||
fPlayer.msg(TL.COMMAND_FWARP_WARPED, warpName);
|
||||
}
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-warp", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_FWARP_INVALID_WARP, warpName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check transaction AFTER password check.
|
||||
if (!transact(context.fPlayer, context)) return;
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.warp", 5), TL.COMMAND_FWARP_TOWARP.toString(), TL.COMMAND_FWARP_FORWARPING.toString());
|
||||
}
|
||||
|
||||
final FPlayer fPlayer = context.fPlayer;
|
||||
final UUID uuid = context.player.getUniqueId();
|
||||
context.doWarmUp(WarmUpUtil.Warmup.WARP, TL.WARMUPS_NOTIFY_TELEPORT, warpName, () -> {
|
||||
Player player = Bukkit.getPlayer(uuid);
|
||||
if (player != null) {
|
||||
player.teleport(fPlayer.getFaction().getWarp(warpName).getLocation());
|
||||
fPlayer.msg(TL.COMMAND_FWARP_WARPED, warpName);
|
||||
}
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-warp", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_FWARP_INVALID_WARP, warpName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.warp", 5), TL.COMMAND_FWARP_TOWARP.toString(), TL.COMMAND_FWARP_FORWARPING.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FWARP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FWARP_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -19,186 +19,186 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
public class CmdFly extends FCommand {
|
||||
|
||||
|
||||
public static ConcurrentHashMap<String, Boolean> flyMap = new ConcurrentHashMap<String, Boolean>();
|
||||
public static int id = -1;
|
||||
public static int flyid = -1;
|
||||
public static ConcurrentHashMap<String, Boolean> flyMap = new ConcurrentHashMap<String, Boolean>();
|
||||
public static int id = -1;
|
||||
public static int flyid = -1;
|
||||
|
||||
public CmdFly() {
|
||||
super();
|
||||
this.aliases.add("fly");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
public CmdFly() {
|
||||
super();
|
||||
this.aliases.add("fly");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.FLY)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.FLY)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
public static void startParticles() {
|
||||
public static void startParticles() {
|
||||
|
||||
id = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> {
|
||||
for (String name : flyMap.keySet()) {
|
||||
id = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> {
|
||||
for (String name : flyMap.keySet()) {
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null) continue;
|
||||
if (!player.isFlying()) continue;
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
if (player.getGameMode() == GameMode.SPECTATOR) continue;
|
||||
}
|
||||
|
||||
FPlayer fplayer = FPlayers.getInstance().getByPlayer(player);
|
||||
fplayer.isVanished();
|
||||
|
||||
}
|
||||
if (flyMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(id);
|
||||
id = -1;
|
||||
}
|
||||
}, 10L, 3L);
|
||||
}
|
||||
|
||||
public static void startFlyCheck() {
|
||||
flyid = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { //threw the exception for now, until I recode fly :( Cringe.
|
||||
checkTaskState();
|
||||
if (flyMap.keySet().size() != 0) {
|
||||
for (String name : flyMap.keySet()) {
|
||||
if (name == null) {
|
||||
continue;
|
||||
}
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null) continue;
|
||||
if (!player.isFlying()) continue;
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
if (player.getGameMode() == GameMode.SPECTATOR) continue;
|
||||
if (player == null
|
||||
|| !player.isFlying()
|
||||
|| player.getGameMode() == GameMode.CREATIVE
|
||||
|| !FactionsPlugin.getInstance().mc17 && player.getGameMode() == GameMode.SPECTATOR) {
|
||||
continue;
|
||||
}
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||
Faction myFaction = fPlayer.getFaction();
|
||||
if (myFaction.isWilderness()) {
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
continue;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.bypassnearbyenemycheck") || fPlayer.checkIfNearbyEnemies()) {
|
||||
continue;
|
||||
}
|
||||
FLocation myFloc = new FLocation(player.getLocation());
|
||||
if (Board.getInstance().getFactionAt(myFloc) != myFaction) {
|
||||
if (!checkBypassPerms(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) {
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer fplayer = FPlayers.getInstance().getByPlayer(player);
|
||||
fplayer.isVanished();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (flyMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(id);
|
||||
id = -1;
|
||||
}
|
||||
}, 10L, 3L);
|
||||
}
|
||||
}, 20L, 20L);
|
||||
}
|
||||
|
||||
public static void startFlyCheck() {
|
||||
flyid = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> { //threw the exception for now, until I recode fly :( Cringe.
|
||||
checkTaskState();
|
||||
if (flyMap.keySet().size() != 0) {
|
||||
for (String name : flyMap.keySet()) {
|
||||
if (name == null) {
|
||||
continue;
|
||||
}
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null
|
||||
|| !player.isFlying()
|
||||
|| player.getGameMode() == GameMode.CREATIVE
|
||||
|| !FactionsPlugin.getInstance().mc17 && player.getGameMode() == GameMode.SPECTATOR) {
|
||||
continue;
|
||||
}
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||
Faction myFaction = fPlayer.getFaction();
|
||||
if (myFaction.isWilderness()) {
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
continue;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.bypassnearbyenemycheck") || fPlayer.checkIfNearbyEnemies()) {
|
||||
continue;
|
||||
}
|
||||
FLocation myFloc = new FLocation(player.getLocation());
|
||||
if (Board.getInstance().getFactionAt(myFloc) != myFaction) {
|
||||
if (!checkBypassPerms(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) {
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
}
|
||||
}
|
||||
private static boolean checkBypassPerms(FPlayer fme, Player me, Faction toFac) {
|
||||
if (toFac != fme.getFaction()) {
|
||||
if (!me.hasPermission("factions.fly.wilderness") && toFac.isWilderness() || !me.hasPermission("factions.fly.safezone") && toFac.isSafeZone() || !me.hasPermission("factions.fly.warzone") && toFac.isWarZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
Access access = toFac.getAccess(fme, PermissableAction.FLY);
|
||||
if ((!(me.hasPermission("factions.fly.enemy") || access == Access.ALLOW)) && toFac.getRelationTo(fme.getFaction()) == Relation.ENEMY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
if (!(me.hasPermission("factions.fly.ally") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.ALLY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
if (!(me.hasPermission("factions.fly.truce") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.TRUCE) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (!(me.hasPermission("factions.fly.neutral") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.NEUTRAL && !isSystemFaction(toFac)) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
return me.hasPermission("factions.fly") && access != Access.DENY;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}, 20L, 20L);
|
||||
}
|
||||
public static Boolean isSystemFaction(Faction faction) {
|
||||
return faction.isSafeZone() ||
|
||||
faction.isWarZone() ||
|
||||
faction.isWilderness();
|
||||
}
|
||||
|
||||
private static boolean checkBypassPerms(FPlayer fme, Player me, Faction toFac) {
|
||||
if (toFac != fme.getFaction()) {
|
||||
if (!me.hasPermission("factions.fly.wilderness") && toFac.isWilderness() || !me.hasPermission("factions.fly.safezone") && toFac.isSafeZone() || !me.hasPermission("factions.fly.warzone") && toFac.isWarZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
Access access = toFac.getAccess(fme, PermissableAction.FLY);
|
||||
if ((!(me.hasPermission("factions.fly.enemy") || access == Access.ALLOW)) && toFac.getRelationTo(fme.getFaction()) == Relation.ENEMY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
if (!(me.hasPermission("factions.fly.ally") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.ALLY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
if (!(me.hasPermission("factions.fly.truce") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.TRUCE) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
public static void checkTaskState() {
|
||||
if (flyMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(flyid);
|
||||
flyid = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(me.hasPermission("factions.fly.neutral") || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.NEUTRAL && !isSystemFaction(toFac)) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
||||
return false;
|
||||
}
|
||||
return me.hasPermission("factions.fly") && access != Access.DENY;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public static void disableFlight(final FPlayer fme) {
|
||||
fme.setFlying(false);
|
||||
flyMap.remove(fme.getPlayer().getName());
|
||||
}
|
||||
|
||||
public static Boolean isSystemFaction(Faction faction) {
|
||||
return faction.isSafeZone() ||
|
||||
faction.isWarZone() ||
|
||||
faction.isWilderness();
|
||||
}
|
||||
public boolean isInFlightChecker(Player player) {
|
||||
return flyMap.containsKey(player.getName());
|
||||
}
|
||||
|
||||
public static void checkTaskState() {
|
||||
if (flyMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(flyid);
|
||||
flyid = -1;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Disabled by default.
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
context.fPlayer.msg(TL.COMMAND_FLY_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
public static void disableFlight(final FPlayer fme) {
|
||||
fme.setFlying(false);
|
||||
flyMap.remove(fme.getPlayer().getName());
|
||||
}
|
||||
FLocation myfloc = new FLocation(context.player.getLocation());
|
||||
Faction toFac = Board.getInstance().getFactionAt(myfloc);
|
||||
if (!checkBypassPerms(context.fPlayer, context.player, toFac)) return;
|
||||
List<Entity> entities = context.player.getNearbyEntities(16.0D, 256.0D, 16.0D);
|
||||
|
||||
public boolean isInFlightChecker(Player player) {
|
||||
return flyMap.containsKey(player.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Disabled by default.
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
context.fPlayer.msg(TL.COMMAND_FLY_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation myfloc = new FLocation(context.player.getLocation());
|
||||
Faction toFac = Board.getInstance().getFactionAt(myfloc);
|
||||
if (!checkBypassPerms(context.fPlayer, context.player, toFac)) return;
|
||||
List<Entity> entities = context.player.getNearbyEntities(16.0D, 256.0D, 16.0D);
|
||||
|
||||
for (int i = 0; i <= entities.size() - 1; ++i) {
|
||||
if (entities.get(i) instanceof Player) {
|
||||
Player eplayer = (Player) entities.get(i);
|
||||
FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer);
|
||||
if (efplayer.getRelationTo(context.fPlayer) == Relation.ENEMY && !efplayer.isStealthEnabled()) {
|
||||
context.msg(TL.COMMAND_FLY_CHECK_ENEMY);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i <= entities.size() - 1; ++i) {
|
||||
if (entities.get(i) instanceof Player) {
|
||||
Player eplayer = (Player) entities.get(i);
|
||||
FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer);
|
||||
if (efplayer.getRelationTo(context.fPlayer) == Relation.ENEMY && !efplayer.isStealthEnabled()) {
|
||||
context.msg(TL.COMMAND_FLY_CHECK_ENEMY);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (context.args.size() == 0) {
|
||||
toggleFlight(context.fPlayer.isFlying(), context.fPlayer, context);
|
||||
} else if (context.args.size() == 1) {
|
||||
toggleFlight(context.argAsBool(0), context.fPlayer, context);
|
||||
}
|
||||
}
|
||||
if (context.args.size() == 0) {
|
||||
toggleFlight(context.fPlayer.isFlying(), context.fPlayer, context);
|
||||
} else if (context.args.size() == 1) {
|
||||
toggleFlight(context.argAsBool(0), context.fPlayer, context);
|
||||
}
|
||||
}
|
||||
|
||||
private void toggleFlight(final boolean toggle, final FPlayer fme, CommandContext context) {
|
||||
if (toggle) {
|
||||
fme.setFlying(false);
|
||||
flyMap.remove(fme.getPlayer().getName());
|
||||
return;
|
||||
}
|
||||
private void toggleFlight(final boolean toggle, final FPlayer fme, CommandContext context) {
|
||||
if (toggle) {
|
||||
fme.setFlying(false);
|
||||
flyMap.remove(fme.getPlayer().getName());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (fme.canFlyAtLocation())
|
||||
context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> {
|
||||
fme.setFlying(true);
|
||||
flyMap.put(fme.getPlayer().getName(), true);
|
||||
if (flyid == -1) {
|
||||
startFlyCheck();
|
||||
}
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0));
|
||||
}
|
||||
if (fme.canFlyAtLocation())
|
||||
context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> {
|
||||
fme.setFlying(true);
|
||||
flyMap.put(fme.getPlayer().getName(), true);
|
||||
if (flyid == -1) {
|
||||
startFlyCheck();
|
||||
}
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FLY_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FLY_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,43 +7,43 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdFocus extends FCommand {
|
||||
public CmdFocus() {
|
||||
aliases.add("focus");
|
||||
public CmdFocus() {
|
||||
aliases.add("focus");
|
||||
|
||||
requiredArgs.add("player");
|
||||
requiredArgs.add("player");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.FOCUS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.FOCUS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
if (target.getFaction().getId().equalsIgnoreCase(context.faction.getId())) {
|
||||
context.msg(TL.COMMAND_FOCUS_SAMEFACTION);
|
||||
return;
|
||||
}
|
||||
if ((context.faction.getFocused() != null) && (context.faction.getFocused().equalsIgnoreCase(target.getName()))) {
|
||||
context.faction.setFocused(null);
|
||||
context.faction.msg(TL.COMMAND_FOCUS_NO_LONGER, target.getName());
|
||||
FTeamWrapper.updatePrefixes(target.getFaction());
|
||||
return;
|
||||
}
|
||||
context.faction.msg(TL.COMMAND_FOCUS_FOCUSING, target.getName());
|
||||
context.faction.setFocused(target.getName());
|
||||
FTeamWrapper.updatePrefixes(target.getFaction());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
if (target.getFaction().getId().equalsIgnoreCase(context.faction.getId())) {
|
||||
context.msg(TL.COMMAND_FOCUS_SAMEFACTION);
|
||||
return;
|
||||
}
|
||||
if ((context.faction.getFocused() != null) && (context.faction.getFocused().equalsIgnoreCase(target.getName()))) {
|
||||
context.faction.setFocused(null);
|
||||
context.faction.msg(TL.COMMAND_FOCUS_NO_LONGER, target.getName());
|
||||
FTeamWrapper.updatePrefixes(target.getFaction());
|
||||
return;
|
||||
}
|
||||
context.faction.msg(TL.COMMAND_FOCUS_FOCUSING, target.getName());
|
||||
context.faction.setFocused(target.getName());
|
||||
FTeamWrapper.updatePrefixes(target.getFaction());
|
||||
}
|
||||
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FOCUS_DESCRIPTION;
|
||||
}
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_FOCUS_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,64 +9,64 @@ import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class CmdGetVault extends FCommand {
|
||||
public CmdGetVault() {
|
||||
super();
|
||||
this.aliases.add("getvault");
|
||||
public CmdGetVault() {
|
||||
super();
|
||||
this.aliases.add("getvault");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.GETVAULT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.GETVAULT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
Location vaultLocation = context.faction.getVault();
|
||||
ItemStack vault = FactionsPlugin.getInstance().createItem(Material.CHEST, 1, (short) 0, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fvault.Item.Name")), FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fvault.Item.Lore")));
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
Location vaultLocation = context.faction.getVault();
|
||||
ItemStack vault = FactionsPlugin.getInstance().createItem(Material.CHEST, 1, (short) 0, FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fvault.Item.Name")), FactionsPlugin.getInstance().colorList(FactionsPlugin.getInstance().getConfig().getStringList("fvault.Item.Lore")));
|
||||
|
||||
|
||||
//check if vault is set
|
||||
if (vaultLocation != null) {
|
||||
context.msg(TL.COMMAND_GETVAULT_ALREADYSET);
|
||||
return;
|
||||
}
|
||||
//check if vault is set
|
||||
if (vaultLocation != null) {
|
||||
context.msg(TL.COMMAND_GETVAULT_ALREADYSET);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//has enough money?
|
||||
int amount = FactionsPlugin.getInstance().getConfig().getInt("fvault.Price");
|
||||
if (!context.fPlayer.hasMoney(amount)) {
|
||||
return;
|
||||
}
|
||||
//has enough money?
|
||||
int amount = FactionsPlugin.getInstance().getConfig().getInt("fvault.Price");
|
||||
if (!context.fPlayer.hasMoney(amount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//success :)
|
||||
context.fPlayer.takeMoney(amount);
|
||||
context.player.getInventory().addItem(vault);
|
||||
context.fPlayer.msg(TL.COMMAND_GETVAULT_RECEIVE);
|
||||
//success :)
|
||||
context.fPlayer.takeMoney(amount);
|
||||
context.player.getInventory().addItem(vault);
|
||||
context.fPlayer.msg(TL.COMMAND_GETVAULT_RECEIVE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public boolean inventoryContains(Inventory inventory, ItemStack item) {
|
||||
int count = 0;
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
|
||||
count += items[i].getAmount();
|
||||
}
|
||||
if (count >= item.getAmount()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean inventoryContains(Inventory inventory, ItemStack item) {
|
||||
int count = 0;
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
|
||||
count += items[i].getAmount();
|
||||
}
|
||||
if (count >= item.getAmount()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_GETVAULT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_GETVAULT_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -13,201 +13,201 @@ import java.util.List;
|
||||
|
||||
public class CmdHelp extends FCommand {
|
||||
|
||||
public ArrayList<ArrayList<String>> helpPages;
|
||||
public ArrayList<ArrayList<String>> helpPages;
|
||||
|
||||
public CmdHelp() {
|
||||
super();
|
||||
this.aliases.add("help");
|
||||
this.aliases.add("h");
|
||||
this.aliases.add("?");
|
||||
public CmdHelp() {
|
||||
super();
|
||||
this.aliases.add("help");
|
||||
this.aliases.add("h");
|
||||
this.aliases.add("?");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("page", "1");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("page", "1");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.HELP)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.HELP)
|
||||
.build();
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
// Build the help pages
|
||||
//----------------------------------------------//
|
||||
//----------------------------------------------//
|
||||
// Build the help pages
|
||||
//----------------------------------------------//
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("use-old-help", true)) {
|
||||
if (helpPages == null) {
|
||||
updateHelp(context);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("use-old-help", true)) {
|
||||
if (helpPages == null) {
|
||||
updateHelp(context);
|
||||
}
|
||||
|
||||
int page = context.argAsInt(0, 1);
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")"));
|
||||
int page = context.argAsInt(0, 1);
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")"));
|
||||
|
||||
page -= 1;
|
||||
page -= 1;
|
||||
|
||||
if (page < 0 || page >= helpPages.size()) {
|
||||
context.msg(TL.COMMAND_HELP_404.format(String.valueOf(page)));
|
||||
return;
|
||||
}
|
||||
context.sendMessage(helpPages.get(page));
|
||||
return;
|
||||
}
|
||||
ConfigurationSection help = FactionsPlugin.getInstance().getConfig().getConfigurationSection("help");
|
||||
if (help == null) {
|
||||
help = FactionsPlugin.getInstance().getConfig().createSection("help"); // create new help section
|
||||
List<String> error = new ArrayList<>();
|
||||
error.add("&cUpdate help messages in config.yml!");
|
||||
error.add("&cSet use-old-help for legacy help messages");
|
||||
help.set("'1'", error); // add default error messages
|
||||
}
|
||||
String pageArg = context.argAsString(0, "1");
|
||||
List<String> page = help.getStringList(pageArg);
|
||||
if (page == null || page.isEmpty()) {
|
||||
context.msg(TL.COMMAND_HELP_404.format(pageArg));
|
||||
return;
|
||||
}
|
||||
for (String helpLine : page) {
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.parse(helpLine));
|
||||
}
|
||||
}
|
||||
if (page < 0 || page >= helpPages.size()) {
|
||||
context.msg(TL.COMMAND_HELP_404.format(String.valueOf(page)));
|
||||
return;
|
||||
}
|
||||
context.sendMessage(helpPages.get(page));
|
||||
return;
|
||||
}
|
||||
ConfigurationSection help = FactionsPlugin.getInstance().getConfig().getConfigurationSection("help");
|
||||
if (help == null) {
|
||||
help = FactionsPlugin.getInstance().getConfig().createSection("help"); // create new help section
|
||||
List<String> error = new ArrayList<>();
|
||||
error.add("&cUpdate help messages in config.yml!");
|
||||
error.add("&cSet use-old-help for legacy help messages");
|
||||
help.set("'1'", error); // add default error messages
|
||||
}
|
||||
String pageArg = context.argAsString(0, "1");
|
||||
List<String> page = help.getStringList(pageArg);
|
||||
if (page == null || page.isEmpty()) {
|
||||
context.msg(TL.COMMAND_HELP_404.format(pageArg));
|
||||
return;
|
||||
}
|
||||
for (String helpLine : page) {
|
||||
context.sendMessage(FactionsPlugin.getInstance().txt.parse(helpLine));
|
||||
}
|
||||
}
|
||||
|
||||
public void updateHelp(CommandContext context) {
|
||||
helpPages = new ArrayList<>();
|
||||
ArrayList<String> pageLines;
|
||||
public void updateHelp(CommandContext context) {
|
||||
helpPages = new ArrayList<>();
|
||||
ArrayList<String> pageLines;
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHelp.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdList.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdShow.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPower.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdJoin.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChat.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdToggleAllianceChat.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_NEXTCREATE.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHelp.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdList.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdShow.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPower.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdJoin.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChat.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdToggleAllianceChat.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_NEXTCREATE.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdCreate.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTag.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_INVITATIONS.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOpen.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdInvite.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDeinvite.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_HOME.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdCreate.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDescription.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTag.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_INVITATIONS.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOpen.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdInvite.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDeinvite.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_HOME.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
if (Econ.isSetup() && Conf.econEnabled && Conf.bankEnabled) {
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_3.toString()));
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMoney.getUseageTemplate(context));
|
||||
pageLines.add("");
|
||||
pageLines.add("");
|
||||
pageLines.add("");
|
||||
helpPages.add(pageLines);
|
||||
}
|
||||
if (Econ.isSetup() && Conf.econEnabled && Conf.bankEnabled) {
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_BANK_3.toString()));
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMoney.getUseageTemplate(context));
|
||||
pageLines.add("");
|
||||
pageLines.add("");
|
||||
pageLines.add("");
|
||||
helpPages.add(pageLines);
|
||||
}
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdClaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAutoClaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaimall.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMod.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAdmin.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTitle.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSB.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSeeChunk.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdStatus.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PLAYERTITLES.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdClaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAutoClaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdUnclaimall.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMod.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdAdmin.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdTitle.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSB.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSeeChunk.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdStatus.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PLAYERTITLES.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMap.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBoom.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwner.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwnerList.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_3.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdMap.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBoom.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwner.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdOwnerList.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_OWNERSHIP_3.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDisband.getUseageTemplate(context));
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationAlly.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationNeutral.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationEnemy.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_4.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdDisband.getUseageTemplate(context));
|
||||
pageLines.add("");
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationAlly.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationNeutral.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdRelationEnemy.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_4.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_5.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_6.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_7.toString()));
|
||||
pageLines.add(TL.COMMAND_HELP_RELATIONS_8.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_9.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_10.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_11.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_12.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_13.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_5.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_6.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_7.toString()));
|
||||
pageLines.add(TL.COMMAND_HELP_RELATIONS_8.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_9.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_10.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_11.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_12.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_RELATIONS_13.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_3.toString()));
|
||||
pageLines.add(TL.COMMAND_HELP_PERMISSIONS_4.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_5.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_6.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_7.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_8.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_9.toString()));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_3.toString()));
|
||||
pageLines.add(TL.COMMAND_HELP_PERMISSIONS_4.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_5.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_6.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_7.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_8.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_PERMISSIONS_9.toString()));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(TL.COMMAND_HELP_MOAR_1.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBypass.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSafeunclaimall.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdWarunclaimall.getUseageTemplate(context));
|
||||
//TODO:TL
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse("<i>Note: " + FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context) + FactionsPlugin.getInstance().txt.parse("<i>") + " works on safe/war zones as well."));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPeaceful.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(TL.COMMAND_HELP_MOAR_1.toString());
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdBypass.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_1.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_ADMIN_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSafeunclaimall.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdWarunclaimall.getUseageTemplate(context));
|
||||
//TODO:TL
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse("<i>Note: " + FactionsPlugin.getInstance().cmdBase.cmdUnclaim.getUseageTemplate(context) + FactionsPlugin.getInstance().txt.parse("<i>") + " works on safe/war zones as well."));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPeaceful.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChatSpy.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanent.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanentPower.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPowerBoost.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdConfig.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_2.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdChatSpy.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanent.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPermanentPower.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdPowerBoost.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdConfig.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLock.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdReload.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSaveAll.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdVersion.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
}
|
||||
pageLines = new ArrayList<>();
|
||||
pageLines.add(FactionsPlugin.getInstance().txt.parse(TL.COMMAND_HELP_MOAR_3.toString()));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdLock.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdReload.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdSaveAll.getUseageTemplate(context));
|
||||
pageLines.add(FactionsPlugin.getInstance().cmdBase.cmdVersion.getUseageTemplate(context));
|
||||
helpPages.add(pageLines);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HELP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HELP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,118 +20,118 @@ import java.util.List;
|
||||
|
||||
public class CmdHome extends FCommand {
|
||||
|
||||
public CmdHome() {
|
||||
super();
|
||||
this.aliases.add("home");
|
||||
public CmdHome() {
|
||||
super();
|
||||
this.aliases.add("home");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.HOME)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.HOME)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.HOME)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.HOME)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// TODO: Hide this command on help also.
|
||||
if (!Conf.homesEnabled) {
|
||||
context.msg(TL.COMMAND_HOME_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// TODO: Hide this command on help also.
|
||||
if (!Conf.homesEnabled) {
|
||||
context.msg(TL.COMMAND_HOME_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.homesTeleportCommandEnabled) {
|
||||
context.msg(TL.COMMAND_HOME_TELEPORTDISABLED);
|
||||
return;
|
||||
}
|
||||
if (!Conf.homesTeleportCommandEnabled) {
|
||||
context.msg(TL.COMMAND_HOME_TELEPORTDISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!context.faction.hasHome()) {
|
||||
context.msg(TL.COMMAND_HOME_NOHOME.toString() + (context.fPlayer.getRole().value < Role.MODERATOR.value ? TL.GENERIC_ASKYOURLEADER.toString() : TL.GENERIC_YOUSHOULD.toString()));
|
||||
context.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
if (!context.faction.hasHome()) {
|
||||
context.msg(TL.COMMAND_HOME_NOHOME.toString() + (context.fPlayer.getRole().value < Role.MODERATOR.value ? TL.GENERIC_ASKYOURLEADER.toString() : TL.GENERIC_YOUSHOULD.toString()));
|
||||
context.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdSethome.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.homesTeleportAllowedFromEnemyTerritory && context.fPlayer.isInEnemyTerritory()) {
|
||||
context.msg(TL.COMMAND_HOME_INENEMY);
|
||||
return;
|
||||
}
|
||||
if (!Conf.homesTeleportAllowedFromEnemyTerritory && context.fPlayer.isInEnemyTerritory()) {
|
||||
context.msg(TL.COMMAND_HOME_INENEMY);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.homesTeleportAllowedFromDifferentWorld && context.player.getWorld().getUID() != context.faction.getHome().getWorld().getUID()) {
|
||||
context.msg(TL.COMMAND_HOME_WRONGWORLD);
|
||||
return;
|
||||
}
|
||||
if (!Conf.homesTeleportAllowedFromDifferentWorld && context.player.getWorld().getUID() != context.faction.getHome().getWorld().getUID()) {
|
||||
context.msg(TL.COMMAND_HOME_WRONGWORLD);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.HOME);
|
||||
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
||||
context.fPlayer.msg(TL.GENERIC_FPERM_NOPERMISSION, "teleport home");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.HOME);
|
||||
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
||||
context.fPlayer.msg(TL.GENERIC_FPERM_NOPERMISSION, "teleport home");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Faction faction = Board.getInstance().getFactionAt(new FLocation(context.player.getLocation()));
|
||||
final Location loc = context.player.getLocation().clone();
|
||||
Faction faction = Board.getInstance().getFactionAt(new FLocation(context.player.getLocation()));
|
||||
final Location loc = context.player.getLocation().clone();
|
||||
|
||||
// if player is not in a safe zone or their own faction territory, only allow teleport if no enemies are nearby
|
||||
if (Conf.homesTeleportAllowedEnemyDistance > 0 && !faction.isSafeZone() && (!context.fPlayer.isInOwnTerritory() || !Conf.homesTeleportIgnoreEnemiesIfInOwnTerritory)) {
|
||||
World w = loc.getWorld();
|
||||
double x = loc.getX();
|
||||
double y = loc.getY();
|
||||
double z = loc.getZ();
|
||||
// if player is not in a safe zone or their own faction territory, only allow teleport if no enemies are nearby
|
||||
if (Conf.homesTeleportAllowedEnemyDistance > 0 && !faction.isSafeZone() && (!context.fPlayer.isInOwnTerritory() || !Conf.homesTeleportIgnoreEnemiesIfInOwnTerritory)) {
|
||||
World w = loc.getWorld();
|
||||
double x = loc.getX();
|
||||
double y = loc.getY();
|
||||
double z = loc.getZ();
|
||||
|
||||
for (Player p : context.player.getServer().getOnlinePlayers()) {
|
||||
if (p == null || !p.isOnline() || p.isDead() || p == context.player || p.getWorld() != w) {
|
||||
continue;
|
||||
}
|
||||
for (Player p : context.player.getServer().getOnlinePlayers()) {
|
||||
if (p == null || !p.isOnline() || p.isDead() || p == context.player || p.getWorld() != w) {
|
||||
continue;
|
||||
}
|
||||
|
||||
FPlayer fp = FPlayers.getInstance().getByPlayer(p);
|
||||
if (context.fPlayer.getRelationTo(fp) != Relation.ENEMY || fp.isVanished()) {
|
||||
continue;
|
||||
}
|
||||
FPlayer fp = FPlayers.getInstance().getByPlayer(p);
|
||||
if (context.fPlayer.getRelationTo(fp) != Relation.ENEMY || fp.isVanished()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Location l = p.getLocation();
|
||||
double dx = Math.abs(x - l.getX());
|
||||
double dy = Math.abs(y - l.getY());
|
||||
double dz = Math.abs(z - l.getZ());
|
||||
double max = Conf.homesTeleportAllowedEnemyDistance;
|
||||
Location l = p.getLocation();
|
||||
double dx = Math.abs(x - l.getX());
|
||||
double dy = Math.abs(y - l.getY());
|
||||
double dz = Math.abs(z - l.getZ());
|
||||
double max = Conf.homesTeleportAllowedEnemyDistance;
|
||||
|
||||
// box-shaped distance check
|
||||
if (dx > max || dy > max || dz > max) {
|
||||
continue;
|
||||
}
|
||||
// box-shaped distance check
|
||||
if (dx > max || dy > max || dz > max) {
|
||||
continue;
|
||||
}
|
||||
|
||||
context.msg(TL.COMMAND_HOME_ENEMYNEAR, String.valueOf(Conf.homesTeleportAllowedEnemyDistance));
|
||||
return;
|
||||
}
|
||||
}
|
||||
context.msg(TL.COMMAND_HOME_ENEMYNEAR, String.valueOf(Conf.homesTeleportAllowedEnemyDistance));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostHome, TL.COMMAND_HOME_TOTELEPORT.toString(), TL.COMMAND_HOME_FORTELEPORT.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostHome, TL.COMMAND_HOME_TOTELEPORT.toString(), TL.COMMAND_HOME_FORTELEPORT.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// if Essentials teleport handling is enabled and available, pass the teleport off to it (for delay and cooldown)
|
||||
if (Essentials.handleTeleport(context.player, context.faction.getHome())) {
|
||||
return;
|
||||
}
|
||||
// if Essentials teleport handling is enabled and available, pass the teleport off to it (for delay and cooldown)
|
||||
if (Essentials.handleTeleport(context.player, context.faction.getHome())) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.doWarmUp(WarmUpUtil.Warmup.HOME, TL.WARMUPS_NOTIFY_TELEPORT, "Home", () -> {
|
||||
// Create a smoke effect
|
||||
if (Conf.homesTeleportCommandSmokeEffectEnabled) {
|
||||
List<Location> smokeLocations = new ArrayList<>();
|
||||
smokeLocations.add(loc);
|
||||
smokeLocations.add(loc.add(0, 1, 0));
|
||||
smokeLocations.add(context.faction.getHome());
|
||||
smokeLocations.add(context.faction.getHome().clone().add(0, 1, 0));
|
||||
SmokeUtil.spawnCloudRandom(smokeLocations, Conf.homesTeleportCommandSmokeEffectThickness);
|
||||
}
|
||||
context.player.teleport(context.faction.getHome());
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-home", 0));
|
||||
}
|
||||
context.doWarmUp(WarmUpUtil.Warmup.HOME, TL.WARMUPS_NOTIFY_TELEPORT, "Home", () -> {
|
||||
// Create a smoke effect
|
||||
if (Conf.homesTeleportCommandSmokeEffectEnabled) {
|
||||
List<Location> smokeLocations = new ArrayList<>();
|
||||
smokeLocations.add(loc);
|
||||
smokeLocations.add(loc.add(0, 1, 0));
|
||||
smokeLocations.add(context.faction.getHome());
|
||||
smokeLocations.add(context.faction.getHome().clone().add(0, 1, 0));
|
||||
SmokeUtil.spawnCloudRandom(smokeLocations, Conf.homesTeleportCommandSmokeEffectThickness);
|
||||
}
|
||||
context.player.teleport(context.faction.getHome());
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-home", 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HOME_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_HOME_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,33 +4,33 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdInspect extends FCommand {
|
||||
public CmdInspect() {
|
||||
super();
|
||||
this.aliases.add("inspect");
|
||||
this.aliases.add("ins");
|
||||
public CmdInspect() {
|
||||
super();
|
||||
this.aliases.add("inspect");
|
||||
this.aliases.add("ins");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INSPECT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INSPECT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.fPlayer.isInspectMode()) {
|
||||
context.fPlayer.setInspectMode(false);
|
||||
context.msg(TL.COMMAND_INSPECT_DISABLED_MSG);
|
||||
} else {
|
||||
context.fPlayer.setInspectMode(true);
|
||||
context.msg(TL.COMMAND_INSPECT_ENABLED);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.fPlayer.isInspectMode()) {
|
||||
context.fPlayer.setInspectMode(false);
|
||||
context.msg(TL.COMMAND_INSPECT_DISABLED_MSG);
|
||||
} else {
|
||||
context.fPlayer.setInspectMode(true);
|
||||
context.msg(TL.COMMAND_INSPECT_ENABLED);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INSPECT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INSPECT_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,50 +16,50 @@ import java.util.Objects;
|
||||
|
||||
public class CmdInventorySee extends FCommand {
|
||||
|
||||
public CmdInventorySee() {
|
||||
super();
|
||||
public CmdInventorySee() {
|
||||
super();
|
||||
|
||||
this.aliases.add("invsee");
|
||||
this.aliases.add("inventorysee");
|
||||
this.aliases.add("invsee");
|
||||
this.aliases.add("inventorysee");
|
||||
|
||||
this.requiredArgs.add("member name");
|
||||
this.requiredArgs.add("member name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INVSEE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INVSEE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
Access use = context.fPlayer.getFaction().getAccess(context.fPlayer, PermissableAction.TERRITORY);
|
||||
if (use == Access.DENY || (use == Access.UNDEFINED && !context.assertMinRole(Role.MODERATOR))) {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "territory");
|
||||
return;
|
||||
}
|
||||
Access use = context.fPlayer.getFaction().getAccess(context.fPlayer, PermissableAction.TERRITORY);
|
||||
if (use == Access.DENY || (use == Access.UNDEFINED && !context.assertMinRole(Role.MODERATOR))) {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "territory");
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<Player> fplayers = context.fPlayer.getFaction().getOnlinePlayers();
|
||||
ArrayList<Player> fplayers = context.fPlayer.getFaction().getOnlinePlayers();
|
||||
|
||||
FPlayer targetInv = context.argAsFPlayer(0);
|
||||
if (targetInv == null || !fplayers.contains(targetInv.getPlayer())) {
|
||||
context.msg(TL.PLAYER_NOT_FOUND, Objects.requireNonNull(targetInv).toString());
|
||||
return;
|
||||
}
|
||||
FPlayer targetInv = context.argAsFPlayer(0);
|
||||
if (targetInv == null || !fplayers.contains(targetInv.getPlayer())) {
|
||||
context.msg(TL.PLAYER_NOT_FOUND, Objects.requireNonNull(targetInv).toString());
|
||||
return;
|
||||
}
|
||||
|
||||
Inventory inventory = Bukkit.createInventory(context.player, 36, targetInv.getName() + "'s Inventory");
|
||||
for (int i = 0; i < 36; i++)
|
||||
if (targetInv.getPlayer().getInventory().getItem(i) != null)
|
||||
inventory.setItem(i, targetInv.getPlayer().getInventory().getItem(i));
|
||||
Inventory inventory = Bukkit.createInventory(context.player, 36, targetInv.getName() + "'s Inventory");
|
||||
for (int i = 0; i < 36; i++)
|
||||
if (targetInv.getPlayer().getInventory().getItem(i) != null)
|
||||
inventory.setItem(i, targetInv.getPlayer().getInventory().getItem(i));
|
||||
|
||||
context.player.openInventory(inventory);
|
||||
}
|
||||
context.player.openInventory(inventory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INVENTORYSEE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INVENTORYSEE_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -11,69 +11,69 @@ import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdInvite extends FCommand {
|
||||
|
||||
public CmdInvite() {
|
||||
super();
|
||||
this.aliases.add("invite");
|
||||
this.aliases.add("inv");
|
||||
public CmdInvite() {
|
||||
super();
|
||||
this.aliases.add("invite");
|
||||
this.aliases.add("inv");
|
||||
|
||||
this.requiredArgs.add("player name");
|
||||
this.requiredArgs.add("player name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INVITE)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.INVITE)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.INVITE)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.INVITE)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.getFaction() == context.faction) {
|
||||
context.msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), context.faction.getTag());
|
||||
context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
if (target.getFaction() == context.faction) {
|
||||
context.msg(TL.COMMAND_INVITE_ALREADYMEMBER, target.getName(), context.faction.getTag());
|
||||
context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdKick.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostInvite, TL.COMMAND_INVITE_TOINVITE.toString(), TL.COMMAND_INVITE_FORINVITE.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.faction.isInvited(target)) {
|
||||
context.msg(TL.COMMAND_INVITE_ALREADYINVITED, target.getName());
|
||||
return;
|
||||
}
|
||||
if (context.faction.isBanned(target)) {
|
||||
context.msg(TL.COMMAND_INVITE_BANNED, target.getName());
|
||||
return;
|
||||
}
|
||||
if (context.faction.isInvited(target)) {
|
||||
context.msg(TL.COMMAND_INVITE_ALREADYINVITED, target.getName());
|
||||
return;
|
||||
}
|
||||
if (context.faction.isBanned(target)) {
|
||||
context.msg(TL.COMMAND_INVITE_BANNED, target.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.invite(target);
|
||||
// Send the invitation to the target player when online, otherwise just ignore
|
||||
if (target.isOnline()) {
|
||||
// Tooltips, colors, and commands only apply to the string immediately before it.
|
||||
FancyMessage message = new FancyMessage(context.fPlayer.describeTo(target, true))
|
||||
.tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
||||
.then(TL.COMMAND_INVITE_INVITEDYOU.toString())
|
||||
.color(ChatColor.YELLOW)
|
||||
.tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
||||
.then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag());
|
||||
context.faction.invite(target);
|
||||
// Send the invitation to the target player when online, otherwise just ignore
|
||||
if (target.isOnline()) {
|
||||
// Tooltips, colors, and commands only apply to the string immediately before it.
|
||||
FancyMessage message = new FancyMessage(context.fPlayer.describeTo(target, true))
|
||||
.tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
||||
.then(TL.COMMAND_INVITE_INVITEDYOU.toString())
|
||||
.color(ChatColor.YELLOW)
|
||||
.tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
||||
.then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag());
|
||||
|
||||
message.send(target.getPlayer());
|
||||
}
|
||||
message.send(target.getPlayer());
|
||||
}
|
||||
|
||||
context.faction.msg(TL.COMMAND_INVITE_INVITED, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction));
|
||||
}
|
||||
context.faction.msg(TL.COMMAND_INVITE_INVITED, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INVITE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_INVITE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,132 +9,132 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public class CmdJoin extends FCommand {
|
||||
|
||||
public CmdJoin() {
|
||||
super();
|
||||
this.aliases.add("join");
|
||||
this.requiredArgs.add("faction name");
|
||||
this.optionalArgs.put("player", "you");
|
||||
public CmdJoin() {
|
||||
super();
|
||||
this.aliases.add("join");
|
||||
this.requiredArgs.add("faction name");
|
||||
this.optionalArgs.put("player", "you");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.JOIN)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.JOIN)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
FPlayer fplayer = context.argAsBestFPlayerMatch(1, context.fPlayer, false);
|
||||
boolean samePlayer = fplayer == context.fPlayer;
|
||||
FPlayer fplayer = context.argAsBestFPlayerMatch(1, context.fPlayer, false);
|
||||
boolean samePlayer = fplayer == context.fPlayer;
|
||||
|
||||
if (!samePlayer && !Permission.JOIN_OTHERS.has(context.sender, false)) {
|
||||
context.msg(TL.COMMAND_JOIN_CANNOTFORCE);
|
||||
return;
|
||||
}
|
||||
if (!samePlayer && !Permission.JOIN_OTHERS.has(context.sender, false)) {
|
||||
context.msg(TL.COMMAND_JOIN_CANNOTFORCE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_JOIN_SYSTEMFACTION);
|
||||
return;
|
||||
}
|
||||
if (!faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_JOIN_SYSTEMFACTION);
|
||||
return;
|
||||
}
|
||||
|
||||
if (faction == fplayer.getFaction()) {
|
||||
context.msg(TL.COMMAND_JOIN_ALREADYMEMBER, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "are" : "is"), faction.getTag(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
if (faction == fplayer.getFaction()) {
|
||||
context.msg(TL.COMMAND_JOIN_ALREADYMEMBER, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "are" : "is"), faction.getTag(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Conf.factionMemberLimit > 0 && faction.getFPlayers().size() >= getFactionMemberLimit(faction)) {
|
||||
context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), getFactionMemberLimit(faction), fplayer.describeTo(context.fPlayer, false));
|
||||
return;
|
||||
}
|
||||
if (Conf.factionMemberLimit > 0 && faction.getFPlayers().size() >= getFactionMemberLimit(faction)) {
|
||||
context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), getFactionMemberLimit(faction), fplayer.describeTo(context.fPlayer, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (fplayer.hasFaction()) {
|
||||
context.msg(TL.COMMAND_JOIN_INOTHERFACTION, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "your" : "their"));
|
||||
return;
|
||||
}
|
||||
if (fplayer.hasFaction()) {
|
||||
context.msg(TL.COMMAND_JOIN_INOTHERFACTION, fplayer.describeTo(context.fPlayer, true), (samePlayer ? "your" : "their"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.canLeaveWithNegativePower && fplayer.getPower() < 0) {
|
||||
context.msg(TL.COMMAND_JOIN_NEGATIVEPOWER, fplayer.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
if (!Conf.canLeaveWithNegativePower && fplayer.getPower() < 0) {
|
||||
context.msg(TL.COMMAND_JOIN_NEGATIVEPOWER, fplayer.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(faction.getOpen() || faction.isInvited(fplayer) || context.fPlayer.isAdminBypassing() || Permission.JOIN_ANY.has(context.sender, false))) {
|
||||
context.msg(TL.COMMAND_JOIN_REQUIRESINVITATION);
|
||||
if (samePlayer) {
|
||||
faction.msg(TL.COMMAND_JOIN_ATTEMPTEDJOIN, fplayer.describeTo(faction, true));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!(faction.getOpen() || faction.isInvited(fplayer) || context.fPlayer.isAdminBypassing() || Permission.JOIN_ANY.has(context.sender, false))) {
|
||||
context.msg(TL.COMMAND_JOIN_REQUIRESINVITATION);
|
||||
if (samePlayer) {
|
||||
faction.msg(TL.COMMAND_JOIN_ATTEMPTEDJOIN, fplayer.describeTo(faction, true));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int altLimit = Conf.factionAltMemberLimit;
|
||||
int altLimit = Conf.factionAltMemberLimit;
|
||||
|
||||
if (altLimit > 0 && faction.getAltPlayers().size() >= altLimit && !faction.altInvited(context.fPlayer)) {
|
||||
context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), altLimit, fplayer.describeTo(context.fPlayer, false));
|
||||
return;
|
||||
}
|
||||
if (altLimit > 0 && faction.getAltPlayers().size() >= altLimit && !faction.altInvited(context.fPlayer)) {
|
||||
context.msg(TL.COMMAND_JOIN_ATLIMIT, faction.getTag(context.fPlayer), altLimit, fplayer.describeTo(context.fPlayer, false));
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (samePlayer && !context.canAffordCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (samePlayer && !context.canAffordCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for ban
|
||||
if (!context.fPlayer.isAdminBypassing() && faction.isBanned(context.fPlayer)) {
|
||||
context.msg(TL.COMMAND_JOIN_BANNED, faction.getTag(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
// Check for ban
|
||||
if (!context.fPlayer.isAdminBypassing() && faction.isBanned(context.fPlayer)) {
|
||||
context.msg(TL.COMMAND_JOIN_BANNED, faction.getTag(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the join event (cancellable)
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.COMMAND);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
if (joinEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
// trigger the join event (cancellable)
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.COMMAND);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
if (joinEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (samePlayer && !context.payForCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString(), TL.COMMAND_JOIN_FORJOIN.toString())) {
|
||||
return;
|
||||
}
|
||||
// then make 'em pay (if applicable)
|
||||
if (samePlayer && !context.payForCommand(Conf.econCostJoin, TL.COMMAND_JOIN_TOJOIN.toString(), TL.COMMAND_JOIN_FORJOIN.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.msg(TL.COMMAND_JOIN_SUCCESS, fplayer.describeTo(context.fPlayer, true), faction.getTag(context.fPlayer));
|
||||
context.msg(TL.COMMAND_JOIN_SUCCESS, fplayer.describeTo(context.fPlayer, true), faction.getTag(context.fPlayer));
|
||||
|
||||
if (!samePlayer) {
|
||||
fplayer.msg(TL.COMMAND_JOIN_MOVED, context.fPlayer.describeTo(fplayer, true), faction.getTag(fplayer));
|
||||
}
|
||||
if (!samePlayer) {
|
||||
fplayer.msg(TL.COMMAND_JOIN_MOVED, context.fPlayer.describeTo(fplayer, true), faction.getTag(fplayer));
|
||||
}
|
||||
|
||||
faction.msg(TL.COMMAND_JOIN_JOINED, fplayer.describeTo(faction, true));
|
||||
faction.msg(TL.COMMAND_JOIN_JOINED, fplayer.describeTo(faction, true));
|
||||
|
||||
fplayer.resetFactionData();
|
||||
fplayer.resetFactionData();
|
||||
|
||||
if (faction.altInvited(fplayer)) {
|
||||
fplayer.setAlt(true);
|
||||
fplayer.setFaction(faction, true);
|
||||
} else {
|
||||
fplayer.setFaction(faction, false);
|
||||
}
|
||||
if (faction.altInvited(fplayer)) {
|
||||
fplayer.setAlt(true);
|
||||
fplayer.setFaction(faction, true);
|
||||
} else {
|
||||
fplayer.setFaction(faction, false);
|
||||
}
|
||||
|
||||
faction.deinvite(fplayer);
|
||||
context.fPlayer.setRole(faction.getDefaultRole());
|
||||
faction.deinvite(fplayer);
|
||||
context.fPlayer.setRole(faction.getDefaultRole());
|
||||
|
||||
if (Conf.logFactionJoin) {
|
||||
if (samePlayer) {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_JOINEDLOG.toString(), fplayer.getName(), faction.getTag());
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_MOVEDLOG.toString(), context.fPlayer.getName(), fplayer.getName(), faction.getTag());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Conf.logFactionJoin) {
|
||||
if (samePlayer) {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_JOINEDLOG.toString(), fplayer.getName(), faction.getTag());
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_JOIN_MOVEDLOG.toString(), context.fPlayer.getName(), fplayer.getName(), faction.getTag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int getFactionMemberLimit(Faction f) {
|
||||
if (f.getUpgrade(UpgradeType.MEMBERS) == 0) return Conf.factionMemberLimit;
|
||||
return Conf.factionMemberLimit + FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.Member-Boost.level-" + f.getUpgrade(UpgradeType.MEMBERS));
|
||||
}
|
||||
private int getFactionMemberLimit(Faction f) {
|
||||
if (f.getUpgrade(UpgradeType.MEMBERS) == 0) return Conf.factionMemberLimit;
|
||||
return Conf.factionMemberLimit + FactionsPlugin.getInstance().getConfig().getInt("fupgrades.MainMenu.Members.Member-Boost.level-" + f.getUpgrade(UpgradeType.MEMBERS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_JOIN_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_JOIN_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,115 +16,115 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
public class CmdKick extends FCommand {
|
||||
|
||||
public CmdKick() {
|
||||
super();
|
||||
this.aliases.add("kick");
|
||||
this.optionalArgs.put("player name", "player name");
|
||||
public CmdKick() {
|
||||
super();
|
||||
this.aliases.add("kick");
|
||||
this.optionalArgs.put("player name", "player name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.KICK)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.KICK)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.KICK)
|
||||
.playerOnly()
|
||||
.withAction(PermissableAction.KICK)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer toKick = context.argIsSet(0) ? context.argAsBestFPlayerMatch(0) : null;
|
||||
if (toKick == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_KICK_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer toKick = context.argIsSet(0) ? context.argAsBestFPlayerMatch(0) : null;
|
||||
if (toKick == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_KICK_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
}
|
||||
if (context.fPlayer.getRole().isAtLeast(Role.COLEADER)) {
|
||||
// For both coleader and admin, add mods.
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
}
|
||||
if (context.fPlayer.getRole().isAtLeast(Role.COLEADER)) {
|
||||
// For both coleader and admin, add mods.
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.MODERATOR)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.GRAY).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
msg.then(s + " ").color(ChatColor.GRAY).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
}
|
||||
if (context.fPlayer.getRole() == Role.LEADER) {
|
||||
// Only add coleader to this for the leader.
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.COLEADER)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.RED).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
}
|
||||
if (context.fPlayer.getRole() == Role.LEADER) {
|
||||
// Only add coleader to this for the leader.
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.COLEADER)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.RED).tooltip(TL.COMMAND_KICK_CLICKTOKICK.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " kick " + s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.fPlayer == toKick) {
|
||||
context.msg(TL.COMMAND_KICK_SELF);
|
||||
context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer == toKick) {
|
||||
context.msg(TL.COMMAND_KICK_SELF);
|
||||
context.msg(TL.GENERIC_YOUMAYWANT.toString() + FactionsPlugin.getInstance().cmdBase.cmdLeave.getUseageTemplate(context));
|
||||
return;
|
||||
}
|
||||
|
||||
Faction toKickFaction = toKick.getFaction();
|
||||
Faction toKickFaction = toKick.getFaction();
|
||||
|
||||
if (toKickFaction.isWilderness()) {
|
||||
context.sender.sendMessage(TL.COMMAND_KICK_NONE.toString());
|
||||
return;
|
||||
}
|
||||
if (toKickFaction.isWilderness()) {
|
||||
context.sender.sendMessage(TL.COMMAND_KICK_NONE.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
// This permission check has been cleaned to be more understandable and logical
|
||||
// Unless is admin,
|
||||
// - Check for the kick permission.
|
||||
// - Make sure the player is in the faction.
|
||||
// - Make sure the kicked player has lower rank than the kicker.
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
if (toKickFaction != context.faction) {
|
||||
context.msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(context.fPlayer, true), context.faction.describeTo(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
if (toKick.getRole().value >= context.fPlayer.getRole().value) {
|
||||
context.msg(TL.COMMAND_KICK_INSUFFICIENTRANK);
|
||||
return;
|
||||
}
|
||||
if (!Conf.canLeaveWithNegativePower && toKick.getPower() < 0) {
|
||||
context.msg(TL.COMMAND_KICK_NEGATIVEPOWER);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// This permission check has been cleaned to be more understandable and logical
|
||||
// Unless is admin,
|
||||
// - Check for the kick permission.
|
||||
// - Make sure the player is in the faction.
|
||||
// - Make sure the kicked player has lower rank than the kicker.
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
if (toKickFaction != context.faction) {
|
||||
context.msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(context.fPlayer, true), context.faction.describeTo(context.fPlayer));
|
||||
return;
|
||||
}
|
||||
if (toKick.getRole().value >= context.fPlayer.getRole().value) {
|
||||
context.msg(TL.COMMAND_KICK_INSUFFICIENTRANK);
|
||||
return;
|
||||
}
|
||||
if (!Conf.canLeaveWithNegativePower && toKick.getPower() < 0) {
|
||||
context.msg(TL.COMMAND_KICK_NEGATIVEPOWER);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the leave event (cancellable) [reason:kicked]
|
||||
FPlayerLeaveEvent event = new FPlayerLeaveEvent(toKick, toKick.getFaction(), FPlayerLeaveEvent.PlayerLeaveReason.KICKED);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
// trigger the leave event (cancellable) [reason:kicked]
|
||||
FPlayerLeaveEvent event = new FPlayerLeaveEvent(toKick, toKick.getFaction(), FPlayerLeaveEvent.PlayerLeaveReason.KICKED);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString(), TL.COMMAND_KICK_FORKICK.toString())) {
|
||||
return;
|
||||
}
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostKick, TL.COMMAND_KICK_TOKICK.toString(), TL.COMMAND_KICK_FORKICK.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
toKickFaction.msg(TL.COMMAND_KICK_FACTION, context.fPlayer.describeTo(toKickFaction, true), toKick.describeTo(toKickFaction, true));
|
||||
toKickFaction.msg(TL.COMMAND_KICK_FACTION, context.fPlayer.describeTo(toKickFaction, true), toKick.describeTo(toKickFaction, true));
|
||||
|
||||
toKick.msg(TL.COMMAND_KICK_KICKED, context.fPlayer.describeTo(toKick, true), toKickFaction.describeTo(toKick));
|
||||
if (toKickFaction != context.faction) {
|
||||
context.fPlayer.msg(TL.COMMAND_KICK_KICKS, toKick.describeTo(context.fPlayer), toKickFaction.describeTo(context.fPlayer));
|
||||
}
|
||||
if (Conf.logFactionKick) {
|
||||
FactionsPlugin.getInstance().log((context.sender instanceof ConsoleCommandSender ? "A console command" : context.fPlayer.getName()) + " kicked " + toKick.getName() + " from the faction: " + toKickFaction.getTag());
|
||||
}
|
||||
if (toKick.getRole() == Role.LEADER) {
|
||||
toKickFaction.promoteNewLeader();
|
||||
}
|
||||
toKickFaction.deinvite(toKick);
|
||||
toKick.resetFactionData();
|
||||
}
|
||||
toKick.msg(TL.COMMAND_KICK_KICKED, context.fPlayer.describeTo(toKick, true), toKickFaction.describeTo(toKick));
|
||||
if (toKickFaction != context.faction) {
|
||||
context.fPlayer.msg(TL.COMMAND_KICK_KICKS, toKick.describeTo(context.fPlayer), toKickFaction.describeTo(context.fPlayer));
|
||||
}
|
||||
if (Conf.logFactionKick) {
|
||||
FactionsPlugin.getInstance().log((context.sender instanceof ConsoleCommandSender ? "A console command" : context.fPlayer.getName()) + " kicked " + toKick.getName() + " from the faction: " + toKickFaction.getTag());
|
||||
}
|
||||
if (toKick.getRole() == Role.LEADER) {
|
||||
toKickFaction.promoteNewLeader();
|
||||
}
|
||||
toKickFaction.deinvite(toKick);
|
||||
toKick.resetFactionData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_KICK_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_KICK_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -4,26 +4,26 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdKillHolograms extends FCommand {
|
||||
public CmdKillHolograms() {
|
||||
super();
|
||||
this.aliases.add("killholos");
|
||||
this.requiredArgs.add("radius");
|
||||
public CmdKillHolograms() {
|
||||
super();
|
||||
this.aliases.add("killholos");
|
||||
this.requiredArgs.add("radius");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.KILLHOLOS)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.KILLHOLOS)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.player.sendMessage("Killing Invisible Armor Stands..");
|
||||
context.player.chat("/minecraft:kill @e[type=ArmorStand,r=" + context.argAsInt(0) + "]");
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.player.sendMessage("Killing Invisible Armor Stands..");
|
||||
context.player.chat("/minecraft:kill @e[type=ArmorStand,r=" + context.argAsInt(0) + "]");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_KILLHOLOGRAMS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_KILLHOLOGRAMS_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,24 +5,24 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdLeave extends FCommand {
|
||||
|
||||
public CmdLeave() {
|
||||
super();
|
||||
this.aliases.add("leave");
|
||||
public CmdLeave() {
|
||||
super();
|
||||
this.aliases.add("leave");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LEAVE)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LEAVE)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.leave(true);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.fPlayer.leave(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.LEAVE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.LEAVE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -14,103 +14,103 @@ import java.util.List;
|
||||
|
||||
public class CmdList extends FCommand {
|
||||
|
||||
private String[] defaults = new String[3];
|
||||
private String[] defaults = new String[3];
|
||||
|
||||
public CmdList() {
|
||||
super();
|
||||
this.aliases.add("list");
|
||||
this.aliases.add("ls");
|
||||
public CmdList() {
|
||||
super();
|
||||
this.aliases.add("list");
|
||||
this.aliases.add("ls");
|
||||
|
||||
// default values in case user has old config
|
||||
defaults[0] = "&e&m----------&r&e[ &2Faction List &9{pagenumber}&e/&9{pagecount} &e]&m----------";
|
||||
defaults[1] = "<i>Factionless<i> {factionless} online";
|
||||
defaults[2] = "<a>{faction} <i>{online} / {members} online, <a>Land / Power / Maxpower: <i>{chunks}/{power}/{maxPower}";
|
||||
// default values in case user has old config
|
||||
defaults[0] = "&e&m----------&r&e[ &2Faction List &9{pagenumber}&e/&9{pagecount} &e]&m----------";
|
||||
defaults[1] = "<i>Factionless<i> {factionless} online";
|
||||
defaults[2] = "<a>{faction} <i>{online} / {members} online, <a>Land / Power / Maxpower: <i>{chunks}/{power}/{maxPower}";
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("page", "1");
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("page", "1");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LIST)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LIST)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostList, "to list the factions", "for listing the factions"))
|
||||
return;
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostList, "to list the factions", "for listing the factions"))
|
||||
return;
|
||||
|
||||
ArrayList<Faction> factionList = Factions.getInstance().getAllFactions();
|
||||
factionList.remove(Factions.getInstance().getWilderness());
|
||||
factionList.remove(Factions.getInstance().getSafeZone());
|
||||
factionList.remove(Factions.getInstance().getWarZone());
|
||||
ArrayList<Faction> factionList = Factions.getInstance().getAllFactions();
|
||||
factionList.remove(Factions.getInstance().getWilderness());
|
||||
factionList.remove(Factions.getInstance().getSafeZone());
|
||||
factionList.remove(Factions.getInstance().getWarZone());
|
||||
|
||||
// remove exempt factions
|
||||
if (context.fPlayer != null && context.fPlayer.getPlayer() != null && !context.fPlayer.getPlayer().hasPermission("factions.show.bypassexempt")) {
|
||||
List<String> exemptFactions = FactionsPlugin.getInstance().getConfig().getStringList("show-exempt");
|
||||
// remove exempt factions
|
||||
if (context.fPlayer != null && context.fPlayer.getPlayer() != null && !context.fPlayer.getPlayer().hasPermission("factions.show.bypassexempt")) {
|
||||
List<String> exemptFactions = FactionsPlugin.getInstance().getConfig().getStringList("show-exempt");
|
||||
|
||||
factionList.removeIf(next -> exemptFactions.contains(next.getTag()));
|
||||
}
|
||||
factionList.removeIf(next -> exemptFactions.contains(next.getTag()));
|
||||
}
|
||||
|
||||
// Sort by total followers first
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayers().size();
|
||||
int f2Size = f2.getFPlayers().size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
// Sort by total followers first
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayers().size();
|
||||
int f2Size = f2.getFPlayers().size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
|
||||
// Then sort by how many members are online now
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayersWhereOnline(true).size();
|
||||
int f2Size = f2.getFPlayersWhereOnline(true).size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
// Then sort by how many members are online now
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayersWhereOnline(true).size();
|
||||
int f2Size = f2.getFPlayersWhereOnline(true).size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
|
||||
factionList.add(0, Factions.getInstance().getWilderness());
|
||||
factionList.add(0, Factions.getInstance().getWilderness());
|
||||
|
||||
final int pageheight = 9;
|
||||
int pagenumber = context.argAsInt(0, 1);
|
||||
int pagecount = (factionList.size() / pageheight) + 1;
|
||||
if (pagenumber > pagecount) {
|
||||
pagenumber = pagecount;
|
||||
} else if (pagenumber < 1) {
|
||||
pagenumber = 1;
|
||||
}
|
||||
int start = (pagenumber - 1) * pageheight;
|
||||
int end = start + pageheight;
|
||||
if (end > factionList.size()) {
|
||||
end = factionList.size();
|
||||
}
|
||||
final int pageheight = 9;
|
||||
int pagenumber = context.argAsInt(0, 1);
|
||||
int pagecount = (factionList.size() / pageheight) + 1;
|
||||
if (pagenumber > pagecount) {
|
||||
pagenumber = pagecount;
|
||||
} else if (pagenumber < 1) {
|
||||
pagenumber = 1;
|
||||
}
|
||||
int start = (pagenumber - 1) * pageheight;
|
||||
int end = start + pageheight;
|
||||
if (end > factionList.size()) {
|
||||
end = factionList.size();
|
||||
}
|
||||
|
||||
|
||||
String header = FactionsPlugin.getInstance().getConfig().getString("list.header", defaults[0]);
|
||||
header = header.replace("{pagenumber}", String.valueOf(pagenumber)).replace("{pagecount}", String.valueOf(pagecount));
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(header));
|
||||
String header = FactionsPlugin.getInstance().getConfig().getString("list.header", defaults[0]);
|
||||
header = header.replace("{pagenumber}", String.valueOf(pagenumber)).replace("{pagecount}", String.valueOf(pagecount));
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(header));
|
||||
|
||||
for (Faction faction : factionList.subList(start, end)) {
|
||||
if (faction.isWilderness()) {
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, FactionsPlugin.getInstance().getConfig().getString("list.factionless", defaults[1]))));
|
||||
continue;
|
||||
}
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, context.fPlayer, FactionsPlugin.getInstance().getConfig().getString("list.entry", defaults[2]))));
|
||||
}
|
||||
context.sendMessage(lines);
|
||||
}
|
||||
for (Faction faction : factionList.subList(start, end)) {
|
||||
if (faction.isWilderness()) {
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, FactionsPlugin.getInstance().getConfig().getString("list.factionless", defaults[1]))));
|
||||
continue;
|
||||
}
|
||||
lines.add(FactionsPlugin.getInstance().txt.parse(TagUtil.parsePlain(faction, context.fPlayer, FactionsPlugin.getInstance().getConfig().getString("list.entry", defaults[2]))));
|
||||
}
|
||||
context.sendMessage(lines);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LIST_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LIST_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -6,33 +6,33 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdLock extends FCommand {
|
||||
|
||||
// TODO: This solution needs refactoring.
|
||||
// TODO: This solution needs refactoring.
|
||||
/*
|
||||
factions.lock:
|
||||
description: use the /f lock [on/off] command to temporarily lock the data files from being overwritten
|
||||
default: op
|
||||
*/
|
||||
|
||||
public CmdLock() {
|
||||
super();
|
||||
this.aliases.add("lock");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
public CmdLock() {
|
||||
super();
|
||||
this.aliases.add("lock");
|
||||
this.optionalArgs.put("on/off", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LOCK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.LOCK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FactionsPlugin.getInstance().setLocked(context.argAsBool(0, !FactionsPlugin.getInstance().getLocked()));
|
||||
context.msg(FactionsPlugin.getInstance().getLocked() ? TL.COMMAND_LOCK_LOCKED : TL.COMMAND_LOCK_UNLOCKED);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FactionsPlugin.getInstance().setLocked(context.argAsBool(0, !FactionsPlugin.getInstance().getLocked()));
|
||||
context.msg(FactionsPlugin.getInstance().getLocked() ? TL.COMMAND_LOCK_LOCKED : TL.COMMAND_LOCK_UNLOCKED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOCK_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOCK_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,28 +5,28 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdLogins extends FCommand {
|
||||
|
||||
public CmdLogins() {
|
||||
super();
|
||||
this.aliases.add("login");
|
||||
this.aliases.add("logins");
|
||||
this.aliases.add("logout");
|
||||
this.aliases.add("logouts");
|
||||
public CmdLogins() {
|
||||
super();
|
||||
this.aliases.add("login");
|
||||
this.aliases.add("logins");
|
||||
this.aliases.add("logout");
|
||||
this.aliases.add("logouts");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MONITOR_LOGINS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MONITOR_LOGINS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean monitor = context.fPlayer.isMonitoringJoins();
|
||||
context.msg(TL.COMMAND_LOGINS_TOGGLE, String.valueOf(!monitor));
|
||||
context.fPlayer.setMonitorJoins(!monitor);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean monitor = context.fPlayer.isMonitoringJoins();
|
||||
context.msg(TL.COMMAND_LOGINS_TOGGLE, String.valueOf(!monitor));
|
||||
context.fPlayer.setMonitorJoins(!monitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOGINS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOGINS_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -7,33 +7,33 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdLowPower extends FCommand {
|
||||
|
||||
public CmdLowPower() {
|
||||
super();
|
||||
this.aliases.add("lowpower");
|
||||
public CmdLowPower() {
|
||||
super();
|
||||
this.aliases.add("lowpower");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWER_ANY)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWER_ANY)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
double maxPower = Conf.powerPlayerMax;
|
||||
String format = TL.COMMAND_LOWPOWER_FORMAT.toString();
|
||||
context.msg(TL.COMMAND_LOWPOWER_HEADER.toString().replace("{maxpower}", (int) maxPower + ""));
|
||||
for (FPlayer fPlayer : context.faction.getFPlayers()) {
|
||||
if (fPlayer.getPower() < maxPower) {
|
||||
context.sendMessage(format.replace("{player}", fPlayer.getName()).replace("{player_power}", (int) fPlayer.getPower() + "").replace("{maxpower}", (int) maxPower + ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
double maxPower = Conf.powerPlayerMax;
|
||||
String format = TL.COMMAND_LOWPOWER_FORMAT.toString();
|
||||
context.msg(TL.COMMAND_LOWPOWER_HEADER.toString().replace("{maxpower}", (int) maxPower + ""));
|
||||
for (FPlayer fPlayer : context.faction.getFPlayers()) {
|
||||
if (fPlayer.getPower() < maxPower) {
|
||||
context.sendMessage(format.replace("{player}", fPlayer.getName()).replace("{player_power}", (int) fPlayer.getPower() + "").replace("{maxpower}", (int) maxPower + ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOWPOWER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_LOWPOWER_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -9,55 +9,55 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdMap extends FCommand {
|
||||
|
||||
public CmdMap() {
|
||||
super();
|
||||
this.aliases.add("map");
|
||||
this.optionalArgs.put("on/off", "once");
|
||||
public CmdMap() {
|
||||
super();
|
||||
this.aliases.add("map");
|
||||
this.optionalArgs.put("on/off", "once");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MAP)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MAP)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.argIsSet(0)) {
|
||||
if (context.argAsBool(0, !context.fPlayer.isMapAutoUpdating())) {
|
||||
// Turn on
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.argIsSet(0)) {
|
||||
if (context.argAsBool(0, !context.fPlayer.isMapAutoUpdating())) {
|
||||
// Turn on
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostMap, "to show the map", "for showing the map")) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.fPlayer.setMapAutoUpdating(true);
|
||||
context.msg(TL.COMMAND_MAP_UPDATE_ENABLED);
|
||||
|
||||
// And show the map once
|
||||
showMap(context);
|
||||
} else {
|
||||
// Turn off
|
||||
context.fPlayer.setMapAutoUpdating(false);
|
||||
context.msg(TL.COMMAND_MAP_UPDATE_DISABLED);
|
||||
|
||||
}
|
||||
} else {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostMap, TL.COMMAND_MAP_TOSHOW, TL.COMMAND_MAP_FORSHOW)) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostMap, "to show the map", "for showing the map")) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
showMap(context);
|
||||
}
|
||||
}
|
||||
context.fPlayer.setMapAutoUpdating(true);
|
||||
context.msg(TL.COMMAND_MAP_UPDATE_ENABLED);
|
||||
|
||||
public void showMap(CommandContext context) {
|
||||
context.sendFancyMessage(Board.getInstance().getMap(context.fPlayer, new FLocation(context.fPlayer), context.player.getLocation().getYaw()));
|
||||
}
|
||||
// And show the map once
|
||||
showMap(context);
|
||||
} else {
|
||||
// Turn off
|
||||
context.fPlayer.setMapAutoUpdating(false);
|
||||
context.msg(TL.COMMAND_MAP_UPDATE_DISABLED);
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MAP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostMap, TL.COMMAND_MAP_TOSHOW, TL.COMMAND_MAP_FORSHOW)) {
|
||||
return;
|
||||
}
|
||||
|
||||
showMap(context);
|
||||
}
|
||||
}
|
||||
|
||||
public void showMap(CommandContext context) {
|
||||
context.sendFancyMessage(Board.getInstance().getMap(context.fPlayer, new FLocation(context.fPlayer), context.player.getLocation().getYaw()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MAP_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -5,34 +5,34 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdMapHeight extends FCommand {
|
||||
|
||||
public CmdMapHeight() {
|
||||
super();
|
||||
public CmdMapHeight() {
|
||||
super();
|
||||
|
||||
this.aliases.add("mapheight");
|
||||
this.aliases.add("mh");
|
||||
this.optionalArgs.put("height", "height");
|
||||
this.aliases.add("mapheight");
|
||||
this.aliases.add("mh");
|
||||
this.optionalArgs.put("height", "height");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MAPHEIGHT)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MAPHEIGHT)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.args.size() == 0) {
|
||||
context.fPlayer.sendMessage(TL.COMMAND_MAPHEIGHT_CURRENT.format(context.fPlayer.getMapHeight()));
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.args.size() == 0) {
|
||||
context.fPlayer.sendMessage(TL.COMMAND_MAPHEIGHT_CURRENT.format(context.fPlayer.getMapHeight()));
|
||||
return;
|
||||
}
|
||||
|
||||
int height = context.argAsInt(0);
|
||||
int height = context.argAsInt(0);
|
||||
|
||||
context.fPlayer.setMapHeight(height);
|
||||
context.msg(TL.COMMAND_MAPHEIGHT_SET.format(context.fPlayer.getMapHeight()));
|
||||
}
|
||||
context.fPlayer.setMapHeight(height);
|
||||
context.msg(TL.COMMAND_MAPHEIGHT_SET.format(context.fPlayer.getMapHeight()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MAPHEIGHT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MAPHEIGHT_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -11,73 +11,73 @@ import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdMod extends FCommand {
|
||||
|
||||
public CmdMod() {
|
||||
super();
|
||||
this.aliases.add("mod");
|
||||
this.aliases.add("setmod");
|
||||
this.aliases.add("officer");
|
||||
this.aliases.add("setofficer");
|
||||
public CmdMod() {
|
||||
super();
|
||||
this.aliases.add("mod");
|
||||
this.aliases.add("setmod");
|
||||
this.aliases.add("officer");
|
||||
this.aliases.add("setofficer");
|
||||
|
||||
this.optionalArgs.put("player name", "name");
|
||||
this.optionalArgs.put("player name", "name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MOD)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MOD)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||
String s = player.getName();
|
||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s);
|
||||
}
|
||||
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
boolean permAny = Permission.MOD_ANY.has(context.sender, false);
|
||||
Faction targetFaction = you.getFaction();
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
boolean permAny = Permission.MOD_ANY.has(context.sender, false);
|
||||
Faction targetFaction = you.getFaction();
|
||||
if (targetFaction != context.faction && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_SELF);
|
||||
return;
|
||||
}
|
||||
if (you == context.fPlayer && !permAny) {
|
||||
context.msg(TL.COMMAND_MOD_SELF);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getRole() == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_MOD_TARGETISADMIN);
|
||||
return;
|
||||
}
|
||||
if (you.getRole() == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_MOD_TARGETISADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getRole() == Role.MODERATOR) {
|
||||
// Revoke
|
||||
you.setRole(Role.NORMAL);
|
||||
targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true));
|
||||
} else {
|
||||
// Give
|
||||
you.setRole(Role.MODERATOR);
|
||||
targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||
}
|
||||
}
|
||||
if (you.getRole() == Role.MODERATOR) {
|
||||
// Revoke
|
||||
you.setRole(Role.NORMAL);
|
||||
targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true));
|
||||
} else {
|
||||
// Give
|
||||
you.setRole(Role.MODERATOR);
|
||||
targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true));
|
||||
context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MOD_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MOD_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,39 +6,39 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdModifyPower extends FCommand {
|
||||
|
||||
public CmdModifyPower() {
|
||||
super();
|
||||
public CmdModifyPower() {
|
||||
super();
|
||||
|
||||
this.aliases.add("pm");
|
||||
this.aliases.add("mp");
|
||||
this.aliases.add("modifypower");
|
||||
this.aliases.add("modpower");
|
||||
this.aliases.add("pm");
|
||||
this.aliases.add("mp");
|
||||
this.aliases.add("modifypower");
|
||||
this.aliases.add("modpower");
|
||||
|
||||
this.requiredArgs.add("name");
|
||||
this.requiredArgs.add("power");
|
||||
this.requiredArgs.add("name");
|
||||
this.requiredArgs.add("power");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MODIFY_POWER)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.MODIFY_POWER)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// /f modify <name> #
|
||||
FPlayer player = context.argAsBestFPlayerMatch(0);
|
||||
Double number = context.argAsDouble(1); // returns null if not a Double.
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// /f modify <name> #
|
||||
FPlayer player = context.argAsBestFPlayerMatch(0);
|
||||
Double number = context.argAsDouble(1); // returns null if not a Double.
|
||||
|
||||
if (player == null || number == null) {
|
||||
context.sender.sendMessage(getHelpShort());
|
||||
return;
|
||||
}
|
||||
if (player == null || number == null) {
|
||||
context.sender.sendMessage(getHelpShort());
|
||||
return;
|
||||
}
|
||||
|
||||
player.alterPower(number);
|
||||
int newPower = player.getPowerRounded(); // int so we don't have super long doubles.
|
||||
context.msg(TL.COMMAND_MODIFYPOWER_ADDED, number, player.getName(), newPower);
|
||||
}
|
||||
player.alterPower(number);
|
||||
int newPower = player.getPowerRounded(); // int so we don't have super long doubles.
|
||||
context.msg(TL.COMMAND_MODIFYPOWER_ADDED, number, player.getName(), newPower);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MODIFYPOWER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MODIFYPOWER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,42 +9,42 @@ import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CmdNear extends FCommand {
|
||||
public CmdNear() {
|
||||
super();
|
||||
this.aliases.add("near");
|
||||
this.aliases.add("nearby");
|
||||
public CmdNear() {
|
||||
super();
|
||||
this.aliases.add("near");
|
||||
this.aliases.add("nearby");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.NEAR)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.NEAR)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fnear.Enabled")) {
|
||||
context.msg(TL.COMMAND_NEAR_DISABLED_MSG);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fnear.Enabled")) {
|
||||
context.msg(TL.COMMAND_NEAR_DISABLED_MSG);
|
||||
return;
|
||||
}
|
||||
|
||||
double range = FactionsPlugin.getInstance().getConfig().getInt("fnear.Radius");
|
||||
String format = TL.COMMAND_NEAR_FORMAT.toString();
|
||||
context.msg(TL.COMMAND_NEAR_USE_MSG);
|
||||
for (Entity e : context.player.getNearbyEntities(range, 255, range)) {
|
||||
if (e instanceof Player) {
|
||||
Player player = (((Player) e).getPlayer());
|
||||
FPlayer fplayer = FPlayers.getInstance().getByPlayer(player);
|
||||
if (context.faction == fplayer.getFaction()) {
|
||||
double distance = context.player.getLocation().distance(player.getLocation());
|
||||
context.sendMessage(format.replace("{playername}", player.getDisplayName()).replace("{distance}", (int) distance + ""));
|
||||
}
|
||||
}
|
||||
double range = FactionsPlugin.getInstance().getConfig().getInt("fnear.Radius");
|
||||
String format = TL.COMMAND_NEAR_FORMAT.toString();
|
||||
context.msg(TL.COMMAND_NEAR_USE_MSG);
|
||||
for (Entity e : context.player.getNearbyEntities(range, 255, range)) {
|
||||
if (e instanceof Player) {
|
||||
Player player = (((Player) e).getPlayer());
|
||||
FPlayer fplayer = FPlayers.getInstance().getByPlayer(player);
|
||||
if (context.faction == fplayer.getFaction()) {
|
||||
double distance = context.player.getLocation().distance(player.getLocation());
|
||||
context.sendMessage(format.replace("{playername}", player.getDisplayName()).replace("{distance}", (int) distance + ""));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_NEAR_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_NEAR_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,42 +9,42 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdOpen extends FCommand {
|
||||
|
||||
public CmdOpen() {
|
||||
super();
|
||||
this.aliases.add("open");
|
||||
this.optionalArgs.put("yes/no", "flip");
|
||||
public CmdOpen() {
|
||||
super();
|
||||
this.aliases.add("open");
|
||||
this.optionalArgs.put("yes/no", "flip");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OPEN)
|
||||
.withRole(Role.COLEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OPEN)
|
||||
.withRole(Role.COLEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostOpen, TL.COMMAND_OPEN_TOOPEN, TL.COMMAND_OPEN_FOROPEN)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostOpen, TL.COMMAND_OPEN_TOOPEN, TL.COMMAND_OPEN_FOROPEN)) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.setOpen(context.argAsBool(0, !context.faction.getOpen()));
|
||||
context.faction.setOpen(context.argAsBool(0, !context.faction.getOpen()));
|
||||
|
||||
String open = context.faction.getOpen() ? TL.COMMAND_OPEN_OPEN.toString() : TL.COMMAND_OPEN_CLOSED.toString();
|
||||
String open = context.faction.getOpen() ? TL.COMMAND_OPEN_OPEN.toString() : TL.COMMAND_OPEN_CLOSED.toString();
|
||||
|
||||
// Inform
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
||||
fplayer.msg(TL.COMMAND_OPEN_CHANGES, context.fPlayer.getName(), open);
|
||||
continue;
|
||||
}
|
||||
fplayer.msg(TL.COMMAND_OPEN_CHANGED, context.faction.getTag(fplayer.getFaction()), open);
|
||||
}
|
||||
}
|
||||
// Inform
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
||||
fplayer.msg(TL.COMMAND_OPEN_CHANGES, context.fPlayer.getName(), open);
|
||||
continue;
|
||||
}
|
||||
fplayer.msg(TL.COMMAND_OPEN_CHANGED, context.faction.getTag(fplayer.getFaction()), open);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OPEN_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OPEN_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,94 +8,94 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdOwner extends FCommand {
|
||||
|
||||
public CmdOwner() {
|
||||
super();
|
||||
this.aliases.add("owner");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
public CmdOwner() {
|
||||
super();
|
||||
this.aliases.add("owner");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OWNER)
|
||||
.withRole(Role.LEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OWNER)
|
||||
.withRole(Role.LEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
// TODO: Fix colors!
|
||||
// TODO: Fix colors!
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean hasBypass = context.fPlayer.isAdminBypassing();
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean hasBypass = context.fPlayer.isAdminBypassing();
|
||||
|
||||
if (!hasBypass && !context.assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
if (!hasBypass && !context.assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.ownedAreasEnabled) {
|
||||
context.msg(TL.COMMAND_OWNER_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (!Conf.ownedAreasEnabled) {
|
||||
context.msg(TL.COMMAND_OWNER_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && context.faction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) {
|
||||
context.msg(TL.COMMAND_OWNER_LIMIT, Conf.ownedAreasLimitPerFaction);
|
||||
return;
|
||||
}
|
||||
if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && context.faction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) {
|
||||
context.msg(TL.COMMAND_OWNER_LIMIT, Conf.ownedAreasLimitPerFaction);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasBypass && !context.assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.LEADER)) {
|
||||
return;
|
||||
}
|
||||
if (!hasBypass && !context.assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.LEADER)) {
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation flocation = new FLocation(context.fPlayer);
|
||||
FLocation flocation = new FLocation(context.fPlayer);
|
||||
|
||||
Faction factionHere = Board.getInstance().getFactionAt(flocation);
|
||||
if (factionHere != context.faction) {
|
||||
if (!factionHere.isNormal()) {
|
||||
context.msg(TL.COMMAND_OWNER_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
Faction factionHere = Board.getInstance().getFactionAt(flocation);
|
||||
if (factionHere != context.faction) {
|
||||
if (!factionHere.isNormal()) {
|
||||
context.msg(TL.COMMAND_OWNER_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasBypass) {
|
||||
context.msg(TL.COMMAND_OWNER_WRONGFACTION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!hasBypass) {
|
||||
context.msg(TL.COMMAND_OWNER_WRONGFACTION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String playerName = target.getName();
|
||||
String playerName = target.getName();
|
||||
|
||||
if (target.getFaction() != context.faction) {
|
||||
context.msg(TL.COMMAND_OWNER_NOTMEMBER, playerName);
|
||||
return;
|
||||
}
|
||||
if (target.getFaction() != context.faction) {
|
||||
context.msg(TL.COMMAND_OWNER_NOTMEMBER, playerName);
|
||||
return;
|
||||
}
|
||||
|
||||
// if no player name was passed, and this claim does already have owners set, clear them
|
||||
if (context.args.isEmpty() && context.faction.doesLocationHaveOwnersSet(flocation)) {
|
||||
context.faction.clearClaimOwnership(flocation);
|
||||
context.msg(TL.COMMAND_OWNER_CLEARED);
|
||||
return;
|
||||
}
|
||||
// if no player name was passed, and this claim does already have owners set, clear them
|
||||
if (context.args.isEmpty() && context.faction.doesLocationHaveOwnersSet(flocation)) {
|
||||
context.faction.clearClaimOwnership(flocation);
|
||||
context.msg(TL.COMMAND_OWNER_CLEARED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.faction.isPlayerInOwnerList(target, flocation)) {
|
||||
context.faction.removePlayerAsOwner(target, flocation);
|
||||
context.msg(TL.COMMAND_OWNER_REMOVED, playerName);
|
||||
return;
|
||||
}
|
||||
if (context.faction.isPlayerInOwnerList(target, flocation)) {
|
||||
context.faction.removePlayerAsOwner(target, flocation);
|
||||
context.msg(TL.COMMAND_OWNER_REMOVED, playerName);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostOwner, TL.COMMAND_OWNER_TOSET, TL.COMMAND_OWNER_FORSET)) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostOwner, TL.COMMAND_OWNER_TOSET, TL.COMMAND_OWNER_FORSET)) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.setPlayerAsOwner(target, flocation);
|
||||
context.faction.setPlayerAsOwner(target, flocation);
|
||||
|
||||
context.msg(TL.COMMAND_OWNER_ADDED, playerName);
|
||||
}
|
||||
context.msg(TL.COMMAND_OWNER_ADDED, playerName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OWNER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OWNER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,56 +9,56 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdOwnerList extends FCommand {
|
||||
|
||||
public CmdOwnerList() {
|
||||
super();
|
||||
this.aliases.add("ownerlist");
|
||||
public CmdOwnerList() {
|
||||
super();
|
||||
this.aliases.add("ownerlist");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OWNERLIST)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.OWNERLIST)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean hasBypass = context.fPlayer.isAdminBypassing();
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean hasBypass = context.fPlayer.isAdminBypassing();
|
||||
|
||||
if (!hasBypass && !context.assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
if (!hasBypass && !context.assertHasFaction()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Conf.ownedAreasEnabled) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_DISABLED);
|
||||
return;
|
||||
}
|
||||
if (!Conf.ownedAreasEnabled) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation flocation = new FLocation(context.fPlayer);
|
||||
FLocation flocation = new FLocation(context.fPlayer);
|
||||
|
||||
if (Board.getInstance().getFactionAt(flocation) != context.faction) {
|
||||
if (!hasBypass) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_WRONGFACTION);
|
||||
return;
|
||||
}
|
||||
//TODO: This code won't ever be called.
|
||||
context.faction = Board.getInstance().getFactionAt(flocation);
|
||||
if (!context.faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (Board.getInstance().getFactionAt(flocation) != context.faction) {
|
||||
if (!hasBypass) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_WRONGFACTION);
|
||||
return;
|
||||
}
|
||||
//TODO: This code won't ever be called.
|
||||
context.faction = Board.getInstance().getFactionAt(flocation);
|
||||
if (!context.faction.isNormal()) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
String owners = context.faction.getOwnerListString(flocation);
|
||||
String owners = context.faction.getOwnerListString(flocation);
|
||||
|
||||
if (owners == null || owners.isEmpty()) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_NONE);
|
||||
return;
|
||||
}
|
||||
if (owners == null || owners.isEmpty()) {
|
||||
context.msg(TL.COMMAND_OWNERLIST_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
context.msg(TL.COMMAND_OWNERLIST_OWNERS, owners);
|
||||
}
|
||||
context.msg(TL.COMMAND_OWNERLIST_OWNERS, owners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OWNERLIST_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_OWNERLIST_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -6,52 +6,52 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPaypalSee extends FCommand {
|
||||
public CmdPaypalSee() {
|
||||
this.aliases.add("seepaypal");
|
||||
this.aliases.add("paypal");
|
||||
public CmdPaypalSee() {
|
||||
this.aliases.add("seepaypal");
|
||||
this.aliases.add("paypal");
|
||||
|
||||
this.optionalArgs.put("faction", "yours");
|
||||
this.optionalArgs.put("faction", "yours");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PAYPAL)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PAYPAL)
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.args.size() == 0) {
|
||||
if (context.fPlayer.getFaction().getPaypal().isEmpty()) {
|
||||
context.msg(TL.COMMAND_PAYPAL_NOTSET);
|
||||
} else {
|
||||
context.msg(TL.PAYPALSEE_PLAYER_PAYPAL, context.fPlayer.getFaction().getPaypal());
|
||||
}
|
||||
} else if (context.args.size() == 1) {
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction != null) {
|
||||
if (faction.getPaypal().isEmpty()) {
|
||||
context.msg(TL.COMMAND_PAYPALSEE_FACTION_NOTSET, faction.getTag());
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSEE_FACTION_PAYPAL.toString(), faction.getTag(), faction.getPaypal());
|
||||
}
|
||||
if (context.args.size() == 0) {
|
||||
if (context.fPlayer.getFaction().getPaypal().isEmpty()) {
|
||||
context.msg(TL.COMMAND_PAYPAL_NOTSET);
|
||||
} else {
|
||||
context.msg(TL.PAYPALSEE_PLAYER_PAYPAL, context.fPlayer.getFaction().getPaypal());
|
||||
}
|
||||
} else if (context.args.size() == 1) {
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction != null) {
|
||||
if (faction.getPaypal().isEmpty()) {
|
||||
context.msg(TL.COMMAND_PAYPALSEE_FACTION_NOTSET, faction.getTag());
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSEE_FACTION_PAYPAL.toString(), faction.getTag(), faction.getPaypal());
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "see another factions paypal.");
|
||||
}
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSee.getUseageTemplate(context));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "see another factions paypal.");
|
||||
}
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSee.getUseageTemplate(context));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PAYPALSEE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PAYPALSEE_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,60 +7,60 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPaypalSet extends FCommand {
|
||||
|
||||
public CmdPaypalSet() {
|
||||
this.aliases.add("setpaypal");
|
||||
public CmdPaypalSet() {
|
||||
this.aliases.add("setpaypal");
|
||||
|
||||
this.optionalArgs.put("faction", "yours");
|
||||
this.optionalArgs.put("faction", "yours");
|
||||
|
||||
this.requiredArgs.add("email");
|
||||
this.requiredArgs.add("email");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PAYPALSET)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PAYPALSET)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
context.fPlayer.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
context.fPlayer.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.args.size() == 1) {
|
||||
if (isEmail(context.argAsString(0))) {
|
||||
context.fPlayer.getFaction().paypalSet(context.argAsString(0));
|
||||
context.msg(TL.COMMAND_PAYPALSET_SUCCESSFUL, context.argAsString(0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSET_NOTEMAIL, context.argAsString(0));
|
||||
}
|
||||
} else if (context.args.size() == 2) {
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
Faction faction = context.argAsFaction(1);
|
||||
if (faction != null) {
|
||||
if (isEmail(context.argAsString(0))) {
|
||||
context.fPlayer.getFaction().paypalSet(context.argAsString(0));
|
||||
context.msg(TL.COMMAND_PAYPALSET_ADMIN_SUCCESSFUL, faction.getTag(), context.argAsString(0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSET_ADMIN_FAILED, context.argAsString(0));
|
||||
}
|
||||
if (context.args.size() == 1) {
|
||||
if (isEmail(context.argAsString(0))) {
|
||||
context.fPlayer.getFaction().paypalSet(context.argAsString(0));
|
||||
context.msg(TL.COMMAND_PAYPALSET_SUCCESSFUL, context.argAsString(0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSET_NOTEMAIL, context.argAsString(0));
|
||||
}
|
||||
} else if (context.args.size() == 2) {
|
||||
if (context.fPlayer.isAdminBypassing()) {
|
||||
Faction faction = context.argAsFaction(1);
|
||||
if (faction != null) {
|
||||
if (isEmail(context.argAsString(0))) {
|
||||
context.fPlayer.getFaction().paypalSet(context.argAsString(0));
|
||||
context.msg(TL.COMMAND_PAYPALSET_ADMIN_SUCCESSFUL, faction.getTag(), context.argAsString(0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_PAYPALSET_ADMIN_FAILED, context.argAsString(0));
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "set another factions paypal!");
|
||||
}
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSet.getUseageTemplate(context));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
context.msg(TL.GENERIC_NOPERMISSION, "set another factions paypal!");
|
||||
}
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().cmdBase.cmdPaypalSet.getUseageTemplate(context));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEmail(String email) {
|
||||
return email.contains("@") && email.contains(".");
|
||||
}
|
||||
private boolean isEmail(String email) {
|
||||
return email.contains("@") && email.contains(".");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PAYPALSET_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PAYPALSET_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,47 +8,47 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPeaceful extends FCommand {
|
||||
|
||||
public CmdPeaceful() {
|
||||
super();
|
||||
this.aliases.add("peaceful");
|
||||
this.requiredArgs.add("faction tag");
|
||||
public CmdPeaceful() {
|
||||
super();
|
||||
this.aliases.add("peaceful");
|
||||
this.requiredArgs.add("faction tag");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PEACEFUL)
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PEACEFUL)
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String change;
|
||||
if (faction.isPeaceful()) {
|
||||
change = TL.COMMAND_PEACEFUL_REVOKE.toString();
|
||||
faction.setPeaceful(false);
|
||||
} else {
|
||||
change = TL.COMMAND_PEACEFUL_GRANT.toString();
|
||||
faction.setPeaceful(true);
|
||||
}
|
||||
String change;
|
||||
if (faction.isPeaceful()) {
|
||||
change = TL.COMMAND_PEACEFUL_REVOKE.toString();
|
||||
faction.setPeaceful(false);
|
||||
} else {
|
||||
change = TL.COMMAND_PEACEFUL_GRANT.toString();
|
||||
faction.setPeaceful(true);
|
||||
}
|
||||
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.msg(TL.COMMAND_PEACEFUL_YOURS, blame, change);
|
||||
} else {
|
||||
fplayer.msg(TL.COMMAND_PEACEFUL_OTHER, blame, change, faction.getTag(fplayer));
|
||||
}
|
||||
}
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.msg(TL.COMMAND_PEACEFUL_YOURS, blame, change);
|
||||
} else {
|
||||
fplayer.msg(TL.COMMAND_PEACEFUL_OTHER, blame, change, faction.getTag(fplayer));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PEACEFUL_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PEACEFUL_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,102 +17,102 @@ import java.util.Set;
|
||||
|
||||
public class CmdPerm extends FCommand {
|
||||
|
||||
public CmdPerm() {
|
||||
super();
|
||||
this.aliases.add("perm");
|
||||
this.aliases.add("perms");
|
||||
this.aliases.add("permission");
|
||||
this.aliases.add("permissions");
|
||||
public CmdPerm() {
|
||||
super();
|
||||
this.aliases.add("perm");
|
||||
this.aliases.add("perms");
|
||||
this.aliases.add("permission");
|
||||
this.aliases.add("permissions");
|
||||
|
||||
this.optionalArgs.put("relation", "relation");
|
||||
this.optionalArgs.put("action", "action");
|
||||
this.optionalArgs.put("access", "access");
|
||||
this.optionalArgs.put("relation", "relation");
|
||||
this.optionalArgs.put("action", "action");
|
||||
this.optionalArgs.put("access", "access");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PERMISSIONS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withRole(Role.LEADER)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.PERMISSIONS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withRole(Role.LEADER)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
|
||||
if (context.args.size() == 0) {
|
||||
new PermissableRelationFrame(context.faction).buildGUI(context.fPlayer);
|
||||
return;
|
||||
} else if (context.args.size() == 1 && getPermissable(context.argAsString(0)) != null) {
|
||||
new PermissableActionFrame(context.faction).buildGUI(context.fPlayer, getPermissable(context.argAsString(0)));
|
||||
return;
|
||||
}
|
||||
if (context.args.size() == 0) {
|
||||
new PermissableRelationFrame(context.faction).buildGUI(context.fPlayer);
|
||||
return;
|
||||
} else if (context.args.size() == 1 && getPermissable(context.argAsString(0)) != null) {
|
||||
new PermissableActionFrame(context.faction).buildGUI(context.fPlayer, getPermissable(context.argAsString(0)));
|
||||
return;
|
||||
}
|
||||
|
||||
// If not opening GUI, then setting the permission manually.
|
||||
if (context.args.size() != 3) {
|
||||
context.msg(TL.COMMAND_PERM_DESCRIPTION);
|
||||
return;
|
||||
}
|
||||
// If not opening GUI, then setting the permission manually.
|
||||
if (context.args.size() != 3) {
|
||||
context.msg(TL.COMMAND_PERM_DESCRIPTION);
|
||||
return;
|
||||
}
|
||||
|
||||
Set<Permissable> permissables = new HashSet<>();
|
||||
Set<PermissableAction> permissableActions = new HashSet<>();
|
||||
Set<Permissable> permissables = new HashSet<>();
|
||||
Set<PermissableAction> permissableActions = new HashSet<>();
|
||||
|
||||
boolean allRelations = context.argAsString(0).equalsIgnoreCase("all");
|
||||
boolean allActions = context.argAsString(1).equalsIgnoreCase("all");
|
||||
boolean allRelations = context.argAsString(0).equalsIgnoreCase("all");
|
||||
boolean allActions = context.argAsString(1).equalsIgnoreCase("all");
|
||||
|
||||
if (allRelations) {
|
||||
permissables.addAll(context.faction.getPermissions().keySet());
|
||||
} else {
|
||||
Permissable permissable = getPermissable(context.argAsString(0));
|
||||
if (allRelations) {
|
||||
permissables.addAll(context.faction.getPermissions().keySet());
|
||||
} else {
|
||||
Permissable permissable = getPermissable(context.argAsString(0));
|
||||
|
||||
if (permissable == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_RELATION);
|
||||
return;
|
||||
}
|
||||
if (permissable == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_RELATION);
|
||||
return;
|
||||
}
|
||||
|
||||
permissables.add(permissable);
|
||||
}
|
||||
permissables.add(permissable);
|
||||
}
|
||||
|
||||
if (allActions) {
|
||||
permissableActions.addAll(Arrays.asList(PermissableAction.values()));
|
||||
} else {
|
||||
PermissableAction permissableAction = PermissableAction.fromString(context.argAsString(1));
|
||||
if (permissableAction == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_ACTION);
|
||||
return;
|
||||
}
|
||||
if (allActions) {
|
||||
permissableActions.addAll(Arrays.asList(PermissableAction.values()));
|
||||
} else {
|
||||
PermissableAction permissableAction = PermissableAction.fromString(context.argAsString(1));
|
||||
if (permissableAction == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_ACTION);
|
||||
return;
|
||||
}
|
||||
|
||||
permissableActions.add(permissableAction);
|
||||
}
|
||||
permissableActions.add(permissableAction);
|
||||
}
|
||||
|
||||
Access access = Access.fromString(context.argAsString(2));
|
||||
Access access = Access.fromString(context.argAsString(2));
|
||||
|
||||
if (access == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_ACCESS);
|
||||
return;
|
||||
}
|
||||
if (access == null) {
|
||||
context.msg(TL.COMMAND_PERM_INVALID_ACCESS);
|
||||
return;
|
||||
}
|
||||
|
||||
for (Permissable permissable : permissables) {
|
||||
for (PermissableAction permissableAction : permissableActions) {
|
||||
context.faction.setPermission(permissable, permissableAction, access);
|
||||
}
|
||||
}
|
||||
for (Permissable permissable : permissables) {
|
||||
for (PermissableAction permissableAction : permissableActions) {
|
||||
context.faction.setPermission(permissable, permissableAction, access);
|
||||
}
|
||||
}
|
||||
|
||||
context.msg(TL.COMMAND_PERM_SET, context.argAsString(1), access.name(), context.argAsString(0));
|
||||
FactionsPlugin.getInstance().log(String.format(TL.COMMAND_PERM_SET.toString(), context.argAsString(1), access.name(), context.argAsString(0)) + " for faction " + context.fPlayer.getTag());
|
||||
}
|
||||
context.msg(TL.COMMAND_PERM_SET, context.argAsString(1), access.name(), context.argAsString(0));
|
||||
FactionsPlugin.getInstance().log(String.format(TL.COMMAND_PERM_SET.toString(), context.argAsString(1), access.name(), context.argAsString(0)) + " for faction " + context.fPlayer.getTag());
|
||||
}
|
||||
|
||||
private Permissable getPermissable(String name) {
|
||||
if (Role.fromString(name.toUpperCase()) != null) {
|
||||
return Role.fromString(name.toUpperCase());
|
||||
} else if (Relation.fromString(name.toUpperCase()) != null) {
|
||||
return Relation.fromString(name.toUpperCase());
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private Permissable getPermissable(String name) {
|
||||
if (Role.fromString(name.toUpperCase()) != null) {
|
||||
return Role.fromString(name.toUpperCase());
|
||||
} else if (Relation.fromString(name.toUpperCase()) != null) {
|
||||
return Relation.fromString(name.toUpperCase());
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERM_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERM_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -10,47 +10,47 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPermanent extends FCommand {
|
||||
|
||||
public CmdPermanent() {
|
||||
super();
|
||||
this.aliases.add("permanent");
|
||||
this.requiredArgs.add("faction tag");
|
||||
public CmdPermanent() {
|
||||
super();
|
||||
this.aliases.add("permanent");
|
||||
this.requiredArgs.add("faction tag");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENT)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENT)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.argAsFaction(0);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String change;
|
||||
if (faction.isPermanent()) {
|
||||
change = TL.COMMAND_PERMANENT_REVOKE.toString();
|
||||
faction.setPermanent(false);
|
||||
} else {
|
||||
change = TL.COMMAND_PERMANENT_GRANT.toString();
|
||||
faction.setPermanent(true);
|
||||
}
|
||||
String change;
|
||||
if (faction.isPermanent()) {
|
||||
change = TL.COMMAND_PERMANENT_REVOKE.toString();
|
||||
faction.setPermanent(false);
|
||||
} else {
|
||||
change = TL.COMMAND_PERMANENT_GRANT.toString();
|
||||
faction.setPermanent(true);
|
||||
}
|
||||
|
||||
FactionsPlugin.getInstance().log((context.fPlayer == null ? "A server admin" : context.fPlayer.getName()) + " " + change + " the faction \"" + faction.getTag() + "\".");
|
||||
FactionsPlugin.getInstance().log((context.fPlayer == null ? "A server admin" : context.fPlayer.getName()) + " " + change + " the faction \"" + faction.getTag() + "\".");
|
||||
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.msg(TL.COMMAND_PERMANENT_YOURS, blame, change);
|
||||
} else {
|
||||
fplayer.msg(TL.COMMAND_PERMANENT_OTHER, blame, change, faction.getTag(fplayer));
|
||||
}
|
||||
}
|
||||
}
|
||||
// Inform all players
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
if (fplayer.getFaction() == faction) {
|
||||
fplayer.msg(TL.COMMAND_PERMANENT_YOURS, blame, change);
|
||||
} else {
|
||||
fplayer.msg(TL.COMMAND_PERMANENT_OTHER, blame, change, faction.getTag(fplayer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERMANENT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERMANENT_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,47 +6,47 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPermanentPower extends FCommand {
|
||||
public CmdPermanentPower() {
|
||||
super();
|
||||
this.aliases.add("permanentpower");
|
||||
this.requiredArgs.add("faction");
|
||||
this.requiredArgs.add("power");
|
||||
public CmdPermanentPower() {
|
||||
super();
|
||||
this.aliases.add("permanentpower");
|
||||
this.requiredArgs.add("faction");
|
||||
this.requiredArgs.add("power");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENTPOWER)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENTPOWER)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction targetFaction = context.argAsFaction(0);
|
||||
if (targetFaction == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction targetFaction = context.argAsFaction(0);
|
||||
if (targetFaction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Integer targetPower = context.argAsInt(1);
|
||||
Integer targetPower = context.argAsInt(1);
|
||||
|
||||
targetFaction.setPermanentPower(targetPower);
|
||||
targetFaction.setPermanentPower(targetPower);
|
||||
|
||||
String change = TL.COMMAND_PERMANENTPOWER_REVOKE.toString();
|
||||
if (targetFaction.hasPermanentPower()) {
|
||||
change = TL.COMMAND_PERMANENTPOWER_GRANT.toString();
|
||||
}
|
||||
String change = TL.COMMAND_PERMANENTPOWER_REVOKE.toString();
|
||||
if (targetFaction.hasPermanentPower()) {
|
||||
change = TL.COMMAND_PERMANENTPOWER_GRANT.toString();
|
||||
}
|
||||
|
||||
// Inform sender
|
||||
context.msg(TL.COMMAND_PERMANENTPOWER_SUCCESS, change, targetFaction.describeTo(context.fPlayer));
|
||||
// Inform sender
|
||||
context.msg(TL.COMMAND_PERMANENTPOWER_SUCCESS, change, targetFaction.describeTo(context.fPlayer));
|
||||
|
||||
// Inform all other players
|
||||
for (FPlayer fplayer : targetFaction.getFPlayersWhereOnline(true)) {
|
||||
if (fplayer == context.fPlayer) {
|
||||
continue;
|
||||
}
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
fplayer.msg(TL.COMMAND_PERMANENTPOWER_FACTION, blame, change);
|
||||
}
|
||||
}
|
||||
// Inform all other players
|
||||
for (FPlayer fplayer : targetFaction.getFPlayersWhereOnline(true)) {
|
||||
if (fplayer == context.fPlayer) {
|
||||
continue;
|
||||
}
|
||||
String blame = (context.fPlayer == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fplayer, true));
|
||||
fplayer.msg(TL.COMMAND_PERMANENTPOWER_FACTION, blame, change);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERMANENTPOWER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_PERMANENTPOWER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -7,42 +7,42 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdPower extends FCommand {
|
||||
|
||||
public CmdPower() {
|
||||
super();
|
||||
this.aliases.add("power");
|
||||
this.aliases.add("pow");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
public CmdPower() {
|
||||
super();
|
||||
this.aliases.add("power");
|
||||
this.aliases.add("pow");
|
||||
this.optionalArgs.put("player name", "you");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWER)
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWER)
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer target = context.argAsBestFPlayerMatch(0, context.fPlayer);
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (target != context.fPlayer && !Permission.POWER_ANY.has(context.sender, true)) {
|
||||
return;
|
||||
}
|
||||
if (target != context.fPlayer && !Permission.POWER_ANY.has(context.sender, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostPower, TL.COMMAND_POWER_TOSHOW, TL.COMMAND_POWER_FORSHOW)) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostPower, TL.COMMAND_POWER_TOSHOW, TL.COMMAND_POWER_FORSHOW)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
double powerBoost = target.getPowerBoost();
|
||||
String boost = (powerBoost == 0.0) ? "" : (powerBoost > 0.0 ? TL.COMMAND_POWER_BONUS.toString() : TL.COMMAND_POWER_PENALTY.toString()) + powerBoost + ")";
|
||||
context.msg(TL.COMMAND_POWER_POWER, target.describeTo(context.fPlayer, true), target.getPowerRounded(), target.getPowerMaxRounded(), boost);
|
||||
}
|
||||
double powerBoost = target.getPowerBoost();
|
||||
String boost = (powerBoost == 0.0) ? "" : (powerBoost > 0.0 ? TL.COMMAND_POWER_BONUS.toString() : TL.COMMAND_POWER_PENALTY.toString()) + powerBoost + ")";
|
||||
context.msg(TL.COMMAND_POWER_POWER, target.describeTo(context.fPlayer, true), target.getPowerRounded(), target.getPowerMaxRounded(), boost);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_POWER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_POWER_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,74 +9,74 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
public class CmdPowerBoost extends FCommand {
|
||||
|
||||
public CmdPowerBoost() {
|
||||
super();
|
||||
this.aliases.add("powerboost");
|
||||
this.requiredArgs.add("plugin|f|player|faction");
|
||||
this.requiredArgs.add("name");
|
||||
this.requiredArgs.add("# or reset");
|
||||
public CmdPowerBoost() {
|
||||
super();
|
||||
this.aliases.add("powerboost");
|
||||
this.requiredArgs.add("plugin|f|player|faction");
|
||||
this.requiredArgs.add("name");
|
||||
this.requiredArgs.add("# or reset");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWERBOOST)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.POWERBOOST)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String type = context.argAsString(0).toLowerCase();
|
||||
boolean doPlayer = true;
|
||||
if (type.equals("f") || type.equals("faction")) {
|
||||
doPlayer = false;
|
||||
} else if (!type.equals("plugin") && !type.equals("player")) {
|
||||
context.msg(TL.COMMAND_POWERBOOST_HELP_1);
|
||||
context.msg(TL.COMMAND_POWERBOOST_HELP_2);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String type = context.argAsString(0).toLowerCase();
|
||||
boolean doPlayer = true;
|
||||
if (type.equals("f") || type.equals("faction")) {
|
||||
doPlayer = false;
|
||||
} else if (!type.equals("plugin") && !type.equals("player")) {
|
||||
context.msg(TL.COMMAND_POWERBOOST_HELP_1);
|
||||
context.msg(TL.COMMAND_POWERBOOST_HELP_2);
|
||||
return;
|
||||
}
|
||||
|
||||
Double targetPower = context.argAsDouble(2);
|
||||
if (targetPower == null) {
|
||||
if (context.argAsString(2).equalsIgnoreCase("reset")) {
|
||||
targetPower = 0D;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_POWERBOOST_INVALIDNUM);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Double targetPower = context.argAsDouble(2);
|
||||
if (targetPower == null) {
|
||||
if (context.argAsString(2).equalsIgnoreCase("reset")) {
|
||||
targetPower = 0D;
|
||||
} else {
|
||||
context.msg(TL.COMMAND_POWERBOOST_INVALIDNUM);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
String target;
|
||||
String target;
|
||||
|
||||
if (doPlayer) {
|
||||
FPlayer targetPlayer = context.argAsBestFPlayerMatch(1);
|
||||
if (targetPlayer == null) {
|
||||
return;
|
||||
}
|
||||
if (doPlayer) {
|
||||
FPlayer targetPlayer = context.argAsBestFPlayerMatch(1);
|
||||
if (targetPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetPower != 0) {
|
||||
targetPower += targetPlayer.getPowerBoost();
|
||||
}
|
||||
targetPlayer.setPowerBoost(targetPower);
|
||||
target = TL.COMMAND_POWERBOOST_PLAYER.format(targetPlayer.getName());
|
||||
} else {
|
||||
Faction targetFaction = context.argAsFaction(1);
|
||||
if (targetFaction == null) {
|
||||
return;
|
||||
}
|
||||
if (targetPower != 0) {
|
||||
targetPower += targetPlayer.getPowerBoost();
|
||||
}
|
||||
targetPlayer.setPowerBoost(targetPower);
|
||||
target = TL.COMMAND_POWERBOOST_PLAYER.format(targetPlayer.getName());
|
||||
} else {
|
||||
Faction targetFaction = context.argAsFaction(1);
|
||||
if (targetFaction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetPower != 0) {
|
||||
targetPower += targetFaction.getPowerBoost();
|
||||
}
|
||||
targetFaction.setPowerBoost(targetPower);
|
||||
target = TL.COMMAND_POWERBOOST_FACTION.format(targetFaction.getTag());
|
||||
}
|
||||
if (targetPower != 0) {
|
||||
targetPower += targetFaction.getPowerBoost();
|
||||
}
|
||||
targetFaction.setPowerBoost(targetPower);
|
||||
target = TL.COMMAND_POWERBOOST_FACTION.format(targetFaction.getTag());
|
||||
}
|
||||
|
||||
int roundedPower = (int) Math.round(targetPower);
|
||||
context.msg(TL.COMMAND_POWERBOOST_BOOST, target, roundedPower);
|
||||
if (!(context.sender instanceof ConsoleCommandSender)) {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_POWERBOOST_BOOSTLOG.toString(), context.fPlayer.getName(), target, roundedPower);
|
||||
}
|
||||
}
|
||||
int roundedPower = (int) Math.round(targetPower);
|
||||
context.msg(TL.COMMAND_POWERBOOST_BOOST, target, roundedPower);
|
||||
if (!(context.sender instanceof ConsoleCommandSender)) {
|
||||
FactionsPlugin.getInstance().log(TL.COMMAND_POWERBOOST_BOOSTLOG.toString(), context.fPlayer.getName(), target, roundedPower);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_POWERBOOST_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_POWERBOOST_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -7,32 +7,32 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdReload extends FCommand {
|
||||
|
||||
public CmdReload() {
|
||||
super();
|
||||
this.aliases.add("reload");
|
||||
public CmdReload() {
|
||||
super();
|
||||
this.aliases.add("reload");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.RELOAD).build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.RELOAD).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
long timeInitStart = System.currentTimeMillis();
|
||||
Conf.load();
|
||||
Conf.save();
|
||||
FactionsPlugin.getInstance().reloadConfig();
|
||||
FactionsPlugin.getInstance().loadLang();
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
long timeInitStart = System.currentTimeMillis();
|
||||
Conf.load();
|
||||
Conf.save();
|
||||
FactionsPlugin.getInstance().reloadConfig();
|
||||
FactionsPlugin.getInstance().loadLang();
|
||||
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) {
|
||||
FactionsPlugin.getInstance().factionsFlight = true;
|
||||
}
|
||||
long timeReload = (System.currentTimeMillis() - timeInitStart);
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) {
|
||||
FactionsPlugin.getInstance().factionsFlight = true;
|
||||
}
|
||||
long timeReload = (System.currentTimeMillis() - timeInitStart);
|
||||
|
||||
context.msg(TL.COMMAND_RELOAD_TIME, timeReload);
|
||||
}
|
||||
context.msg(TL.COMMAND_RELOAD_TIME, timeReload);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_RELOAD_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_RELOAD_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -8,80 +8,80 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class CmdRules extends FCommand {
|
||||
public CmdRules() {
|
||||
super();
|
||||
aliases.add("r");
|
||||
aliases.add("rule");
|
||||
aliases.add("rules");
|
||||
public CmdRules() {
|
||||
super();
|
||||
aliases.add("r");
|
||||
aliases.add("rule");
|
||||
aliases.add("rules");
|
||||
|
||||
this.optionalArgs.put("add/remove/set/clear", "");
|
||||
this.optionalArgs.put("add/remove/set/clear", "");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.RULES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.RULES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.noErrorOnManyArgs()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("frules.Enabled")) {
|
||||
context.msg(TL.COMMAND_RULES_DISABLED_MSG);
|
||||
return;
|
||||
}
|
||||
if (context.args.size() == 0) {
|
||||
HashMap<Integer, String> rules = context.faction.getRulesMap();
|
||||
if (rules.size() == 0) {
|
||||
List<String> ruleList = FactionsPlugin.getInstance().getConfig().getStringList("frules.default-rules");
|
||||
context.sendMessage(FactionsPlugin.getInstance().colorList(ruleList));
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("frules.Enabled")) {
|
||||
context.msg(TL.COMMAND_RULES_DISABLED_MSG);
|
||||
return;
|
||||
}
|
||||
if (context.args.size() == 0) {
|
||||
HashMap<Integer, String> rules = context.faction.getRulesMap();
|
||||
if (rules.size() == 0) {
|
||||
List<String> ruleList = FactionsPlugin.getInstance().getConfig().getStringList("frules.default-rules");
|
||||
context.sendMessage(FactionsPlugin.getInstance().colorList(ruleList));
|
||||
|
||||
} else {
|
||||
for (int i = 0; i <= rules.size() - 1; i++) {
|
||||
context.sendMessage(FactionsPlugin.getInstance().color(rules.get(i)));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i <= rules.size() - 1; i++) {
|
||||
context.sendMessage(FactionsPlugin.getInstance().color(rules.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (context.args.size() == 1) {
|
||||
if (context.args.get(0).equalsIgnoreCase("add")) {
|
||||
context.msg(TL.COMMAND_RULES_ADD_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("set")) {
|
||||
context.msg(TL.COMMAND_RULES_SET_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("remove")) {
|
||||
context.msg(TL.COMMAND_RULES_REMOVE_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("clear")) {
|
||||
context.faction.clearRules();
|
||||
context.msg(TL.COMMAND_RULES_CLEAR_SUCCESS);
|
||||
}
|
||||
}
|
||||
if (context.args.size() == 1) {
|
||||
if (context.args.get(0).equalsIgnoreCase("add")) {
|
||||
context.msg(TL.COMMAND_RULES_ADD_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("set")) {
|
||||
context.msg(TL.COMMAND_RULES_SET_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("remove")) {
|
||||
context.msg(TL.COMMAND_RULES_REMOVE_INVALIDARGS);
|
||||
}
|
||||
if (context.args.get(0).equalsIgnoreCase("clear")) {
|
||||
context.faction.clearRules();
|
||||
context.msg(TL.COMMAND_RULES_CLEAR_SUCCESS);
|
||||
}
|
||||
|
||||
}
|
||||
if (context.args.size() >= 2) {
|
||||
if (context.args.get(0).equalsIgnoreCase("add")) {
|
||||
String message = "";
|
||||
StringBuilder string = new StringBuilder(message);
|
||||
for (int i = 1; i <= context.args.size() - 1; i++) {
|
||||
string.append(" " + context.args.get(i));
|
||||
}
|
||||
context.faction.addRule(string.toString());
|
||||
context.msg(TL.COMMAND_RULES_ADD_SUCCESS);
|
||||
}
|
||||
}
|
||||
if (context.args.size() >= 2) {
|
||||
if (context.args.get(0).equalsIgnoreCase("add")) {
|
||||
String message = "";
|
||||
StringBuilder string = new StringBuilder(message);
|
||||
for (int i = 1; i <= context.args.size() - 1; i++) {
|
||||
string.append(" " + context.args.get(i));
|
||||
}
|
||||
context.faction.addRule(string.toString());
|
||||
context.msg(TL.COMMAND_RULES_ADD_SUCCESS);
|
||||
}
|
||||
|
||||
if (context.args.size() == 2) {
|
||||
if (context.args.get(0).equalsIgnoreCase("remove")) {
|
||||
int index = context.argAsInt(1);
|
||||
context.faction.removeRule(index - 1);
|
||||
context.msg(TL.COMMAND_RULES_REMOVE_SUCCESS);
|
||||
}
|
||||
}
|
||||
if (context.args.size() == 2) {
|
||||
if (context.args.get(0).equalsIgnoreCase("remove")) {
|
||||
int index = context.argAsInt(1);
|
||||
context.faction.removeRule(index - 1);
|
||||
context.msg(TL.COMMAND_RULES_REMOVE_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_RULES_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_RULES_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -6,30 +6,30 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSB extends FCommand {
|
||||
|
||||
public CmdSB() {
|
||||
this.aliases.add("sb");
|
||||
this.aliases.add("scoreboard");
|
||||
public CmdSB() {
|
||||
this.aliases.add("sb");
|
||||
this.aliases.add("scoreboard");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SCOREBOARD)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SCOREBOARD)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean toggleTo = !context.fPlayer.showScoreboard();
|
||||
FScoreboard board = FScoreboard.get(context.fPlayer);
|
||||
if (board == null) {
|
||||
context.msg(TL.COMMAND_TOGGLESB_DISABLED.toString());
|
||||
} else {
|
||||
context.msg(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggleTo)));
|
||||
board.setSidebarVisibility(toggleTo);
|
||||
}
|
||||
context.fPlayer.setShowScoreboard(toggleTo);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
boolean toggleTo = !context.fPlayer.showScoreboard();
|
||||
FScoreboard board = FScoreboard.get(context.fPlayer);
|
||||
if (board == null) {
|
||||
context.msg(TL.COMMAND_TOGGLESB_DISABLED.toString());
|
||||
} else {
|
||||
context.msg(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggleTo)));
|
||||
board.setSidebarVisibility(toggleTo);
|
||||
}
|
||||
context.fPlayer.setShowScoreboard(toggleTo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SCOREBOARD_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SCOREBOARD_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -10,28 +10,28 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSaveAll extends FCommand {
|
||||
|
||||
public CmdSaveAll() {
|
||||
super();
|
||||
this.aliases.add("saveall");
|
||||
this.aliases.add("save");
|
||||
public CmdSaveAll() {
|
||||
super();
|
||||
this.aliases.add("saveall");
|
||||
this.aliases.add("save");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SAVE)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SAVE)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayers.getInstance().forceSave(false);
|
||||
Factions.getInstance().forceSave(false);
|
||||
Board.getInstance().forceSave(false);
|
||||
Conf.save();
|
||||
ShopConfig.saveShop();
|
||||
context.msg(TL.COMMAND_SAVEALL_SUCCESS);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayers.getInstance().forceSave(false);
|
||||
Factions.getInstance().forceSave(false);
|
||||
Board.getInstance().forceSave(false);
|
||||
Conf.save();
|
||||
ShopConfig.saveShop();
|
||||
context.msg(TL.COMMAND_SAVEALL_SUCCESS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SAVEALL_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SAVEALL_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -15,127 +15,127 @@ import java.util.HashMap;
|
||||
|
||||
public class CmdSeeChunk extends FCommand {
|
||||
|
||||
//Used a hashmap cuz imma make a particle selection gui later, will store it where the boolean is rn.
|
||||
public static HashMap<String, Boolean> seeChunkMap = new HashMap<>();
|
||||
private long interval;
|
||||
private boolean useParticles;
|
||||
private ParticleEffect effect;
|
||||
private int taskID = -1;
|
||||
//Used a hashmap cuz imma make a particle selection gui later, will store it where the boolean is rn.
|
||||
public static HashMap<String, Boolean> seeChunkMap = new HashMap<>();
|
||||
private long interval;
|
||||
private boolean useParticles;
|
||||
private ParticleEffect effect;
|
||||
private int taskID = -1;
|
||||
|
||||
|
||||
//I remade it cause of people getting mad that I had the same seechunk as drtshock
|
||||
//I remade it cause of people getting mad that I had the same seechunk as drtshock
|
||||
|
||||
|
||||
public CmdSeeChunk() {
|
||||
super();
|
||||
aliases.add("seechunk");
|
||||
aliases.add("sc");
|
||||
public CmdSeeChunk() {
|
||||
super();
|
||||
aliases.add("seechunk");
|
||||
aliases.add("sc");
|
||||
|
||||
this.useParticles = FactionsPlugin.getInstance().getConfig().getBoolean("see-chunk.particles", true);
|
||||
interval = FactionsPlugin.getInstance().getConfig().getLong("see-chunk.interval", 10L);
|
||||
if (effect == null) {
|
||||
effect = ParticleEffect.REDSTONE;
|
||||
}
|
||||
this.useParticles = FactionsPlugin.getInstance().getConfig().getBoolean("see-chunk.particles", true);
|
||||
interval = FactionsPlugin.getInstance().getConfig().getLong("see-chunk.interval", 10L);
|
||||
if (effect == null) {
|
||||
effect = ParticleEffect.REDSTONE;
|
||||
}
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SEECHUNK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SEECHUNK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (seeChunkMap.containsKey(context.player.getName())) {
|
||||
seeChunkMap.remove(context.player.getName());
|
||||
context.msg(TL.COMMAND_SEECHUNK_DISABLED);
|
||||
} else {
|
||||
seeChunkMap.put(context.player.getName(), true);
|
||||
context.msg(TL.COMMAND_SEECHUNK_ENABLED);
|
||||
manageTask();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (seeChunkMap.containsKey(context.player.getName())) {
|
||||
seeChunkMap.remove(context.player.getName());
|
||||
context.msg(TL.COMMAND_SEECHUNK_DISABLED);
|
||||
} else {
|
||||
seeChunkMap.put(context.player.getName(), true);
|
||||
context.msg(TL.COMMAND_SEECHUNK_ENABLED);
|
||||
manageTask();
|
||||
}
|
||||
}
|
||||
|
||||
private void manageTask() {
|
||||
if (taskID != -1) {
|
||||
if (seeChunkMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(taskID);
|
||||
taskID = -1;
|
||||
}
|
||||
} else {
|
||||
startTask();
|
||||
}
|
||||
}
|
||||
private void manageTask() {
|
||||
if (taskID != -1) {
|
||||
if (seeChunkMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(taskID);
|
||||
taskID = -1;
|
||||
}
|
||||
} else {
|
||||
startTask();
|
||||
}
|
||||
}
|
||||
|
||||
private void startTask() {
|
||||
taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> {
|
||||
for (Object nameObject : seeChunkMap.keySet()) {
|
||||
String name = nameObject + "";
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
showBorders(player);
|
||||
}
|
||||
manageTask();
|
||||
}, 0, interval);
|
||||
}
|
||||
private void startTask() {
|
||||
taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.getInstance(), () -> {
|
||||
for (Object nameObject : seeChunkMap.keySet()) {
|
||||
String name = nameObject + "";
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
showBorders(player);
|
||||
}
|
||||
manageTask();
|
||||
}, 0, interval);
|
||||
}
|
||||
|
||||
private void showBorders(Player me) {
|
||||
World world = me.getWorld();
|
||||
FLocation flocation = new FLocation(me);
|
||||
int chunkX = (int) flocation.getX();
|
||||
int chunkZ = (int) flocation.getZ();
|
||||
private void showBorders(Player me) {
|
||||
World world = me.getWorld();
|
||||
FLocation flocation = new FLocation(me);
|
||||
int chunkX = (int) flocation.getX();
|
||||
int chunkZ = (int) flocation.getZ();
|
||||
|
||||
int blockX;
|
||||
int blockZ;
|
||||
int blockX;
|
||||
int blockZ;
|
||||
|
||||
blockX = chunkX * 16;
|
||||
blockZ = chunkZ * 16;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
blockX = chunkX * 16;
|
||||
blockZ = chunkZ * 16;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
|
||||
|
||||
blockX = chunkX * 16 + 15;
|
||||
blockZ = chunkZ * 16;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
blockX = chunkX * 16 + 15;
|
||||
blockZ = chunkZ * 16;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
|
||||
blockX = chunkX * 16;
|
||||
blockZ = chunkZ * 16 + 15;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
blockX = chunkX * 16;
|
||||
blockZ = chunkZ * 16 + 15;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
|
||||
blockX = chunkX * 16 + 15;
|
||||
blockZ = chunkZ * 16 + 15;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
}
|
||||
|
||||
private void showPillar(Player player, World world, int blockX, int blockZ) {
|
||||
for (int blockY = 0; blockY < player.getLocation().getBlockY() + 30; blockY++) {
|
||||
Location loc = new Location(world, blockX, blockY, blockZ).add(0.5, 0, 0.5);
|
||||
if (loc.getBlock().getType() != Material.AIR) {
|
||||
continue;
|
||||
}
|
||||
if (useParticles) {
|
||||
if (FactionsPlugin.getInstance().useNonPacketParticles) {
|
||||
// Dust options only exists in the 1.13 API, so we use an
|
||||
// alternative method to achieve this in lower versions.
|
||||
if (FactionsPlugin.getInstance().mc113 || FactionsPlugin.getInstance().mc114) {
|
||||
player.spawnParticle(Particle.REDSTONE, loc, 0, new Particle.DustOptions(Color.RED, 1));
|
||||
} else {
|
||||
player.getWorld().spawnParticle(Particle.REDSTONE, loc, 0, 255, 0, 0, 1);
|
||||
}
|
||||
blockX = chunkX * 16 + 15;
|
||||
blockZ = chunkZ * 16 + 15;
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
}
|
||||
|
||||
private void showPillar(Player player, World world, int blockX, int blockZ) {
|
||||
for (int blockY = 0; blockY < player.getLocation().getBlockY() + 30; blockY++) {
|
||||
Location loc = new Location(world, blockX, blockY, blockZ).add(0.5, 0, 0.5);
|
||||
if (loc.getBlock().getType() != Material.AIR) {
|
||||
continue;
|
||||
}
|
||||
if (useParticles) {
|
||||
if (FactionsPlugin.getInstance().useNonPacketParticles) {
|
||||
// Dust options only exists in the 1.13 API, so we use an
|
||||
// alternative method to achieve this in lower versions.
|
||||
if (FactionsPlugin.getInstance().mc113 || FactionsPlugin.getInstance().mc114) {
|
||||
player.spawnParticle(Particle.REDSTONE, loc, 0, new Particle.DustOptions(Color.RED, 1));
|
||||
} else {
|
||||
this.effect.display(0, 0, 0, 0, 1, loc, player);
|
||||
player.getWorld().spawnParticle(Particle.REDSTONE, loc, 0, 255, 0, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
Material type = blockY % 5 == 0 ? XMaterial.REDSTONE_LAMP.parseMaterial() : XMaterial.BLACK_STAINED_GLASS.parseMaterial();
|
||||
VisualizeUtil.addLocation(player, loc, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.effect.display(0, 0, 0, 0, 1, loc, player);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.GENERIC_PLACEHOLDER;
|
||||
}
|
||||
} else {
|
||||
Material type = blockY % 5 == 0 ? XMaterial.REDSTONE_LAMP.parseMaterial() : XMaterial.BLACK_STAINED_GLASS.parseMaterial();
|
||||
VisualizeUtil.addLocation(player, loc, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.GENERIC_PLACEHOLDER;
|
||||
}
|
||||
|
||||
}
|
@ -5,31 +5,31 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSetBanner extends FCommand {
|
||||
|
||||
public CmdSetBanner() {
|
||||
super();
|
||||
aliases.add("setbanner");
|
||||
public CmdSetBanner() {
|
||||
super();
|
||||
aliases.add("setbanner");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!context.player.getItemInHand().getType().toString().contains("BANNER")) {
|
||||
context.msg(TL.COMMAND_SETBANNER_NOTBANNER);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!context.player.getItemInHand().getType().toString().contains("BANNER")) {
|
||||
context.msg(TL.COMMAND_SETBANNER_NOTBANNER);
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.setBannerPattern(context.player.getItemInHand());
|
||||
context.msg(TL.COMMAND_SETBANNER_SUCCESS);
|
||||
context.faction.setBannerPattern(context.player.getItemInHand());
|
||||
context.msg(TL.COMMAND_SETBANNER_SUCCESS);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETBANNER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETBANNER_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,41 +6,41 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSetDefaultRole extends FCommand {
|
||||
|
||||
public CmdSetDefaultRole() {
|
||||
super();
|
||||
public CmdSetDefaultRole() {
|
||||
super();
|
||||
|
||||
this.aliases.add("defaultrole");
|
||||
this.aliases.add("defaultrank");
|
||||
this.aliases.add("default");
|
||||
this.aliases.add("def");
|
||||
this.requiredArgs.add("role");
|
||||
this.aliases.add("defaultrole");
|
||||
this.aliases.add("defaultrank");
|
||||
this.aliases.add("default");
|
||||
this.aliases.add("def");
|
||||
this.requiredArgs.add("role");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DEFAULTRANK)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.DEFAULTRANK)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Role target = Role.fromString(context.argAsString(0).toUpperCase());
|
||||
if (target == null) {
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_INVALIDROLE, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Role target = Role.fromString(context.argAsString(0).toUpperCase());
|
||||
if (target == null) {
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_INVALIDROLE, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
|
||||
if (target == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_NOTTHATROLE, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
if (target == Role.LEADER) {
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_NOTTHATROLE, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
context.faction.setDefaultRole(target);
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_SUCCESS, target.nicename);
|
||||
}
|
||||
context.faction.setDefaultRole(target);
|
||||
context.msg(TL.COMMAND_SETDEFAULTROLE_SUCCESS, target.nicename);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETDEFAULTROLE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETDEFAULTROLE_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -10,61 +10,61 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSetFWarp extends FCommand {
|
||||
|
||||
public CmdSetFWarp() {
|
||||
super();
|
||||
public CmdSetFWarp() {
|
||||
super();
|
||||
|
||||
this.aliases.add("setwarp");
|
||||
this.aliases.add("sw");
|
||||
this.requiredArgs.add("warp name");
|
||||
this.optionalArgs.put("password", "password");
|
||||
this.aliases.add("setwarp");
|
||||
this.aliases.add("sw");
|
||||
this.requiredArgs.add("warp name");
|
||||
this.optionalArgs.put("password", "password");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.SETWARP)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.SETWARP)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!(context.fPlayer.getRelationToLocation() == Relation.MEMBER)) {
|
||||
context.msg(TL.COMMAND_SETFWARP_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!(context.fPlayer.getRelationToLocation() == Relation.MEMBER)) {
|
||||
context.msg(TL.COMMAND_SETFWARP_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
|
||||
String warp = context.argAsString(0);
|
||||
String warp = context.argAsString(0);
|
||||
|
||||
// Checks if warp with same name already exists and ignores maxWarp check if it does.
|
||||
boolean warpExists = context.faction.isWarp(warp);
|
||||
// Checks if warp with same name already exists and ignores maxWarp check if it does.
|
||||
boolean warpExists = context.faction.isWarp(warp);
|
||||
|
||||
int maxWarps = FactionsPlugin.getInstance().getConfig().getInt("max-warps", 5);
|
||||
boolean tooManyWarps = maxWarps <= context.faction.getWarps().size();
|
||||
if (tooManyWarps && !warpExists) {
|
||||
context.msg(TL.COMMAND_SETFWARP_LIMIT, maxWarps);
|
||||
return;
|
||||
}
|
||||
int maxWarps = FactionsPlugin.getInstance().getConfig().getInt("max-warps", 5);
|
||||
boolean tooManyWarps = maxWarps <= context.faction.getWarps().size();
|
||||
if (tooManyWarps && !warpExists) {
|
||||
context.msg(TL.COMMAND_SETFWARP_LIMIT, maxWarps);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!transact(context.fPlayer, context)) {
|
||||
return;
|
||||
}
|
||||
if (!transact(context.fPlayer, context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String password = context.argAsString(1);
|
||||
String password = context.argAsString(1);
|
||||
|
||||
LazyLocation loc = new LazyLocation(context.player.getLocation());
|
||||
context.faction.setWarp(warp, loc);
|
||||
if (password != null) {
|
||||
context.faction.setWarpPassword(warp, password);
|
||||
}
|
||||
context.msg(TL.COMMAND_SETFWARP_SET, warp, password != null ? password : "");
|
||||
}
|
||||
LazyLocation loc = new LazyLocation(context.player.getLocation());
|
||||
context.faction.setWarp(warp, loc);
|
||||
if (password != null) {
|
||||
context.faction.setWarpPassword(warp, password);
|
||||
}
|
||||
context.msg(TL.COMMAND_SETFWARP_SET, warp, password != null ? password : "");
|
||||
}
|
||||
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.setwarp", 5), TL.COMMAND_SETFWARP_TOSET.toString(), TL.COMMAND_SETFWARP_FORSET.toString());
|
||||
}
|
||||
private boolean transact(FPlayer player, CommandContext context) {
|
||||
return !FactionsPlugin.getInstance().getConfig().getBoolean("warp-cost.enabled", false) || player.isAdminBypassing() || context.payForCommand(FactionsPlugin.getInstance().getConfig().getDouble("warp-cost.setwarp", 5), TL.COMMAND_SETFWARP_TOSET.toString(), TL.COMMAND_SETFWARP_FORSET.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETFWARP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETFWARP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,36 +7,36 @@ import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdSetMaxVaults extends FCommand {
|
||||
|
||||
public CmdSetMaxVaults() {
|
||||
this.aliases.add("setmaxvaults");
|
||||
this.aliases.add("smv");
|
||||
this.requiredArgs.add("faction");
|
||||
this.requiredArgs.add("number");
|
||||
public CmdSetMaxVaults() {
|
||||
this.aliases.add("setmaxvaults");
|
||||
this.aliases.add("smv");
|
||||
this.requiredArgs.add("faction");
|
||||
this.requiredArgs.add("number");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETMAXVAULTS)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETMAXVAULTS)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction targetFaction = context.argAsFaction(0);
|
||||
int value = context.argAsInt(1, -1);
|
||||
if (value < 0) {
|
||||
context.sender.sendMessage(ChatColor.RED + "Number must be greater than 0.");
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction targetFaction = context.argAsFaction(0);
|
||||
int value = context.argAsInt(1, -1);
|
||||
if (value < 0) {
|
||||
context.sender.sendMessage(ChatColor.RED + "Number must be greater than 0.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetFaction == null) {
|
||||
context.sender.sendMessage(ChatColor.RED + "Couldn't find Faction: " + ChatColor.YELLOW + context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
if (targetFaction == null) {
|
||||
context.sender.sendMessage(ChatColor.RED + "Couldn't find Faction: " + ChatColor.YELLOW + context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
|
||||
targetFaction.setMaxVaults(value);
|
||||
context.sender.sendMessage(TL.COMMAND_SETMAXVAULTS_SUCCESS.format(targetFaction.getTag(), value));
|
||||
}
|
||||
targetFaction.setMaxVaults(value);
|
||||
context.sender.sendMessage(TL.COMMAND_SETMAXVAULTS_SUCCESS.format(targetFaction.getTag(), value));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETMAXVAULTS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETMAXVAULTS_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -7,54 +7,54 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdSethome extends FCommand {
|
||||
|
||||
public CmdSethome() {
|
||||
this.aliases.add("sethome");
|
||||
this.optionalArgs.put("faction tag", "mine");
|
||||
public CmdSethome() {
|
||||
this.aliases.add("sethome");
|
||||
this.optionalArgs.put("faction tag", "mine");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETHOME)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.SETHOME)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETHOME)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.SETHOME)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.homesEnabled) {
|
||||
context.msg(TL.COMMAND_SETHOME_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.homesEnabled) {
|
||||
context.msg(TL.COMMAND_SETHOME_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
Faction faction = context.argAsFaction(0, context.faction);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
Faction faction = context.argAsFaction(0, context.faction);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Can the player set the faction home HERE?
|
||||
if (!Permission.BYPASS.has(context.player) &&
|
||||
Conf.homesMustBeInClaimedTerritory &&
|
||||
Board.getInstance().getFactionAt(new FLocation(context.player)) != faction) {
|
||||
context.msg(TL.COMMAND_SETHOME_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
// Can the player set the faction home HERE?
|
||||
if (!Permission.BYPASS.has(context.player) &&
|
||||
Conf.homesMustBeInClaimedTerritory &&
|
||||
Board.getInstance().getFactionAt(new FLocation(context.player)) != faction) {
|
||||
context.msg(TL.COMMAND_SETHOME_NOTCLAIMED);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) {
|
||||
return;
|
||||
}
|
||||
|
||||
faction.setHome(context.player.getLocation());
|
||||
faction.setHome(context.player.getLocation());
|
||||
|
||||
faction.msg(TL.COMMAND_SETHOME_SET, context.fPlayer.describeTo(context.faction, true));
|
||||
faction.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context));
|
||||
if (faction != context.faction) {
|
||||
context.msg(TL.COMMAND_SETHOME_SETOTHER, faction.getTag(context.fPlayer));
|
||||
}
|
||||
}
|
||||
faction.msg(TL.COMMAND_SETHOME_SET, context.fPlayer.describeTo(context.faction, true));
|
||||
faction.sendMessage(FactionsPlugin.getInstance().cmdBase.cmdHome.getUseageTemplate(context));
|
||||
if (faction != context.faction) {
|
||||
context.msg(TL.COMMAND_SETHOME_SETOTHER, faction.getTag(context.fPlayer));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETHOME_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SETHOME_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -14,100 +14,100 @@ import java.util.List;
|
||||
|
||||
public class CmdShow extends FCommand {
|
||||
|
||||
List<String> defaults = new ArrayList<>();
|
||||
List<String> defaults = new ArrayList<>();
|
||||
|
||||
public CmdShow() {
|
||||
this.aliases.add("show");
|
||||
this.aliases.add("who");
|
||||
public CmdShow() {
|
||||
this.aliases.add("show");
|
||||
this.aliases.add("who");
|
||||
|
||||
// add defaults to /f show in case config doesnt have it
|
||||
defaults.add("{header}");
|
||||
defaults.add("<a>Description: <i>{description}");
|
||||
defaults.add("<a>Joining: <i>{joining} {peaceful}");
|
||||
defaults.add("<a>Land / Power / Maxpower: <i> {chunks} / {power} / {maxPower}");
|
||||
defaults.add("<a>Founded: <i>{create-date}");
|
||||
defaults.add("<a>This faction is permanent, remaining even with no members.");
|
||||
defaults.add("<a>Land value: <i>{land-value} {land-refund}");
|
||||
defaults.add("<a>Balance: <i>{faction-balance}");
|
||||
defaults.add("<a>Allies(<i>{allies}<a>/<i>{max-allies}<a>): {allies-list}");
|
||||
defaults.add("<a>Online: (<i>{online}<a>/<i>{members}<a>): {online-list}");
|
||||
defaults.add("<a>Offline: (<i>{offline}<a>/<i>{members}<a>): {offline-list}");
|
||||
// add defaults to /f show in case config doesnt have it
|
||||
defaults.add("{header}");
|
||||
defaults.add("<a>Description: <i>{description}");
|
||||
defaults.add("<a>Joining: <i>{joining} {peaceful}");
|
||||
defaults.add("<a>Land / Power / Maxpower: <i> {chunks} / {power} / {maxPower}");
|
||||
defaults.add("<a>Founded: <i>{create-date}");
|
||||
defaults.add("<a>This faction is permanent, remaining even with no members.");
|
||||
defaults.add("<a>Land value: <i>{land-value} {land-refund}");
|
||||
defaults.add("<a>Balance: <i>{faction-balance}");
|
||||
defaults.add("<a>Allies(<i>{allies}<a>/<i>{max-allies}<a>): {allies-list}");
|
||||
defaults.add("<a>Online: (<i>{online}<a>/<i>{members}<a>): {online-list}");
|
||||
defaults.add("<a>Offline: (<i>{offline}<a>/<i>{members}<a>): {offline-list}");
|
||||
|
||||
// this.requiredArgs.add("");
|
||||
this.optionalArgs.put("faction tag", "yours");
|
||||
// this.requiredArgs.add("");
|
||||
this.optionalArgs.put("faction tag", "yours");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOW).build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOW).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.faction;
|
||||
if (context.argIsSet(0))
|
||||
faction = context.argAsFaction(0);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction faction = context.faction;
|
||||
if (context.argIsSet(0))
|
||||
faction = context.argAsFaction(0);
|
||||
|
||||
if (faction == null)
|
||||
return;
|
||||
if (faction == null)
|
||||
return;
|
||||
|
||||
if (context.fPlayer != null && !context.player.getPlayer().hasPermission("factions.show.bypassexempt")
|
||||
&& FactionsPlugin.getInstance().getConfig().getStringList("show-exempt").contains(faction.getTag())) {
|
||||
context.msg(TL.COMMAND_SHOW_EXEMPT);
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer != null && !context.player.getPlayer().hasPermission("factions.show.bypassexempt")
|
||||
&& FactionsPlugin.getInstance().getConfig().getStringList("show-exempt").contains(faction.getTag())) {
|
||||
context.msg(TL.COMMAND_SHOW_EXEMPT);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostShow, TL.COMMAND_SHOW_TOSHOW, TL.COMMAND_SHOW_FORSHOW)) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostShow, TL.COMMAND_SHOW_TOSHOW, TL.COMMAND_SHOW_FORSHOW)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> show = FactionsPlugin.getInstance().getConfig().getStringList("show");
|
||||
if (show == null || show.isEmpty())
|
||||
show = defaults;
|
||||
List<String> show = FactionsPlugin.getInstance().getConfig().getStringList("show");
|
||||
if (show == null || show.isEmpty())
|
||||
show = defaults;
|
||||
|
||||
if (!faction.isNormal()) {
|
||||
String tag = faction.getTag(context.fPlayer);
|
||||
// send header and that's all
|
||||
String header = show.get(0);
|
||||
if (TagReplacer.HEADER.contains(header)) {
|
||||
context.msg(FactionsPlugin.getInstance().txt.titleize(tag));
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().txt.parse(TagReplacer.FACTION.replace(header, tag)));
|
||||
}
|
||||
return; // we only show header for non-normal factions
|
||||
}
|
||||
if (!faction.isNormal()) {
|
||||
String tag = faction.getTag(context.fPlayer);
|
||||
// send header and that's all
|
||||
String header = show.get(0);
|
||||
if (TagReplacer.HEADER.contains(header)) {
|
||||
context.msg(FactionsPlugin.getInstance().txt.titleize(tag));
|
||||
} else {
|
||||
context.msg(FactionsPlugin.getInstance().txt.parse(TagReplacer.FACTION.replace(header, tag)));
|
||||
}
|
||||
return; // we only show header for non-normal factions
|
||||
}
|
||||
|
||||
for (String raw : show) {
|
||||
String parsed = TagUtil.parsePlain(faction, context.fPlayer, raw); // use relations
|
||||
if (parsed == null) {
|
||||
continue; // Due to minimal f show.
|
||||
}
|
||||
for (String raw : show) {
|
||||
String parsed = TagUtil.parsePlain(faction, context.fPlayer, raw); // use relations
|
||||
if (parsed == null) {
|
||||
continue; // Due to minimal f show.
|
||||
}
|
||||
|
||||
if (context.fPlayer != null) {
|
||||
parsed = TagUtil.parsePlaceholders(context.fPlayer.getPlayer(), parsed);
|
||||
}
|
||||
if (context.fPlayer != null) {
|
||||
parsed = TagUtil.parsePlaceholders(context.fPlayer.getPlayer(), parsed);
|
||||
}
|
||||
|
||||
if (TagUtil.hasFancy(parsed)) {
|
||||
List<FancyMessage> fancy = TagUtil.parseFancy(faction, context.fPlayer, parsed);
|
||||
if (fancy != null)
|
||||
context.sendFancyMessage(fancy);
|
||||
if (TagUtil.hasFancy(parsed)) {
|
||||
List<FancyMessage> fancy = TagUtil.parseFancy(faction, context.fPlayer, parsed);
|
||||
if (fancy != null)
|
||||
context.sendFancyMessage(fancy);
|
||||
|
||||
continue;
|
||||
}
|
||||
if (!parsed.contains("{notFrozen}") && !parsed.contains("{notPermanent}")) {
|
||||
if (parsed.contains("{ig}")) {
|
||||
// replaces all variables with no home TL
|
||||
parsed = parsed.substring(0, parsed.indexOf("{ig}")) + TL.COMMAND_SHOW_NOHOME.toString();
|
||||
}
|
||||
if (parsed.contains("%")) {
|
||||
parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it.
|
||||
}
|
||||
context.msg(FactionsPlugin.getInstance().txt.parse(parsed));
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (!parsed.contains("{notFrozen}") && !parsed.contains("{notPermanent}")) {
|
||||
if (parsed.contains("{ig}")) {
|
||||
// replaces all variables with no home TL
|
||||
parsed = parsed.substring(0, parsed.indexOf("{ig}")) + TL.COMMAND_SHOW_NOHOME.toString();
|
||||
}
|
||||
if (parsed.contains("%")) {
|
||||
parsed = parsed.replaceAll("%", ""); // Just in case it got in there before we disallowed it.
|
||||
}
|
||||
context.msg(FactionsPlugin.getInstance().txt.parse(parsed));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOW_COMMANDDESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOW_COMMANDDESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -8,47 +8,47 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdShowClaims extends FCommand {
|
||||
|
||||
public CmdShowClaims() {
|
||||
this.aliases.add("showclaims");
|
||||
this.aliases.add("showclaim");
|
||||
public CmdShowClaims() {
|
||||
this.aliases.add("showclaims");
|
||||
this.aliases.add("showclaim");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOWCLAIMS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOWCLAIMS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.sendMessage(TL.COMMAND_SHOWCLAIMS_HEADER.toString().replace("{faction}", context.faction.describeTo(context.fPlayer)));
|
||||
ListMultimap<String, String> chunkMap = ArrayListMultimap.create();
|
||||
String format = TL.COMMAND_SHOWCLAIMS_CHUNKSFORMAT.toString();
|
||||
for (FLocation fLocation : context.faction.getAllClaims()) {
|
||||
chunkMap.put(fLocation.getWorldName(), format.replace("{x}", fLocation.getX() + "").replace("{z}", fLocation.getZ() + ""));
|
||||
}
|
||||
for (String world : chunkMap.keySet()) {
|
||||
String message = TL.COMMAND_SHOWCLAIMS_FORMAT.toString().replace("{world}", world);
|
||||
// made {chunks} blank as I removed the placeholder and people wont update their config :shrug:
|
||||
context.sendMessage(message.replace("{chunks}", ""));
|
||||
StringBuilder chunks = new StringBuilder();
|
||||
for (String chunkString : chunkMap.get(world)) {
|
||||
chunks.append(chunkString).append(", ");
|
||||
if (chunks.toString().length() >= 2000) {
|
||||
context.sendMessage(chunks.toString());
|
||||
chunks.setLength(0);
|
||||
}
|
||||
}
|
||||
if (chunks.length() != 0) context.sendMessage(chunks.toString());
|
||||
context.sendMessage("");
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.sendMessage(TL.COMMAND_SHOWCLAIMS_HEADER.toString().replace("{faction}", context.faction.describeTo(context.fPlayer)));
|
||||
ListMultimap<String, String> chunkMap = ArrayListMultimap.create();
|
||||
String format = TL.COMMAND_SHOWCLAIMS_CHUNKSFORMAT.toString();
|
||||
for (FLocation fLocation : context.faction.getAllClaims()) {
|
||||
chunkMap.put(fLocation.getWorldName(), format.replace("{x}", fLocation.getX() + "").replace("{z}", fLocation.getZ() + ""));
|
||||
}
|
||||
for (String world : chunkMap.keySet()) {
|
||||
String message = TL.COMMAND_SHOWCLAIMS_FORMAT.toString().replace("{world}", world);
|
||||
// made {chunks} blank as I removed the placeholder and people wont update their config :shrug:
|
||||
context.sendMessage(message.replace("{chunks}", ""));
|
||||
StringBuilder chunks = new StringBuilder();
|
||||
for (String chunkString : chunkMap.get(world)) {
|
||||
chunks.append(chunkString).append(", ");
|
||||
if (chunks.toString().length() >= 2000) {
|
||||
context.sendMessage(chunks.toString());
|
||||
chunks.setLength(0);
|
||||
}
|
||||
}
|
||||
if (chunks.length() != 0) context.sendMessage(chunks.toString());
|
||||
context.sendMessage("");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOWCLAIMS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOWCLAIMS_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -10,33 +10,33 @@ import org.bukkit.ChatColor;
|
||||
|
||||
public class CmdShowInvites extends FCommand {
|
||||
|
||||
public CmdShowInvites() {
|
||||
super();
|
||||
aliases.add("showinvites");
|
||||
public CmdShowInvites() {
|
||||
super();
|
||||
aliases.add("showinvites");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOW_INVITES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SHOW_INVITES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD);
|
||||
for (String id : context.faction.getInvites()) {
|
||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||
String name = fp != null ? fp.getName() : id;
|
||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||
}
|
||||
|
||||
context.sendFancyMessage(msg);
|
||||
}
|
||||
context.sendFancyMessage(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOWINVITES_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_SHOWINVITES_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -10,32 +10,32 @@ import java.util.ArrayList;
|
||||
|
||||
public class CmdStatus extends FCommand {
|
||||
|
||||
public CmdStatus() {
|
||||
super();
|
||||
this.aliases.add("status");
|
||||
this.aliases.add("s");
|
||||
public CmdStatus() {
|
||||
super();
|
||||
this.aliases.add("status");
|
||||
this.aliases.add("s");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STATUS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STATUS)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
for (FPlayer fp : context.faction.getFPlayers()) {
|
||||
String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX;
|
||||
String last = fp.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized);
|
||||
String power = ChatColor.YELLOW + String.valueOf(fp.getPowerRounded()) + " / " + fp.getPowerMaxRounded() + ChatColor.RESET;
|
||||
ret.add(String.format(TL.COMMAND_STATUS_FORMAT.toString(), ChatColor.GOLD + fp.getRole().getPrefix() + fp.getName() + ChatColor.RESET, power, last).trim());
|
||||
}
|
||||
context.fPlayer.sendMessage(ret);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
for (FPlayer fp : context.faction.getFPlayers()) {
|
||||
String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + TL.COMMAND_STATUS_AGOSUFFIX;
|
||||
String last = fp.isOnline() ? ChatColor.GREEN + TL.COMMAND_STATUS_ONLINE.toString() : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized);
|
||||
String power = ChatColor.YELLOW + String.valueOf(fp.getPowerRounded()) + " / " + fp.getPowerMaxRounded() + ChatColor.RESET;
|
||||
ret.add(String.format(TL.COMMAND_STATUS_FORMAT.toString(), ChatColor.GOLD + fp.getRole().getPrefix() + fp.getName() + ChatColor.RESET, power, last).trim());
|
||||
}
|
||||
context.fPlayer.sendMessage(ret);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STATUS_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STATUS_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,26 +4,26 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdStealth extends FCommand {
|
||||
public CmdStealth() {
|
||||
this.aliases.add("ninja");
|
||||
this.aliases.add("stealth");
|
||||
public CmdStealth() {
|
||||
this.aliases.add("ninja");
|
||||
this.aliases.add("stealth");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STEALTH)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STEALTH)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.faction != null && !context.faction.getId().equalsIgnoreCase("0") && !context.faction.getId().equalsIgnoreCase("none") && !context.faction.getId().equalsIgnoreCase("safezone") && !context.faction.getId().equalsIgnoreCase("warzone")) {
|
||||
context.fPlayer.setStealth(!context.fPlayer.isStealthEnabled());
|
||||
context.msg(context.fPlayer.isStealthEnabled() ? TL.COMMAND_STEALTH_ENABLE : TL.COMMAND_STEALTH_DISABLE);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_STEALTH_MUSTBEMEMBER);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (context.faction != null && !context.faction.getId().equalsIgnoreCase("0") && !context.faction.getId().equalsIgnoreCase("none") && !context.faction.getId().equalsIgnoreCase("safezone") && !context.faction.getId().equalsIgnoreCase("warzone")) {
|
||||
context.fPlayer.setStealth(!context.fPlayer.isStealthEnabled());
|
||||
context.msg(context.fPlayer.isStealthEnabled() ? TL.COMMAND_STEALTH_ENABLE : TL.COMMAND_STEALTH_DISABLE);
|
||||
} else {
|
||||
context.msg(TL.COMMAND_STEALTH_MUSTBEMEMBER);
|
||||
}
|
||||
}
|
||||
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STEALTH_DESCRIPTION;
|
||||
}
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STEALTH_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -7,35 +7,35 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
public class CmdStrikes extends FCommand {
|
||||
|
||||
|
||||
public CmdStrikesGive cmdStrikesGive = new CmdStrikesGive();
|
||||
public CmdStrikesInfo cmdStrikesInfo = new CmdStrikesInfo();
|
||||
public CmdStrikesSet cmdStrikesSet = new CmdStrikesSet();
|
||||
public CmdStrikesTake cmdStrikesTake = new CmdStrikesTake();
|
||||
public CmdStrikesGive cmdStrikesGive = new CmdStrikesGive();
|
||||
public CmdStrikesInfo cmdStrikesInfo = new CmdStrikesInfo();
|
||||
public CmdStrikesSet cmdStrikesSet = new CmdStrikesSet();
|
||||
public CmdStrikesTake cmdStrikesTake = new CmdStrikesTake();
|
||||
|
||||
public CmdStrikes() {
|
||||
super();
|
||||
public CmdStrikes() {
|
||||
super();
|
||||
|
||||
this.aliases.add("strikes");
|
||||
this.aliases.add("strikes");
|
||||
|
||||
this.addSubCommand(cmdStrikesGive);
|
||||
this.addSubCommand(cmdStrikesInfo);
|
||||
this.addSubCommand(cmdStrikesSet);
|
||||
this.addSubCommand(cmdStrikesTake);
|
||||
this.addSubCommand(cmdStrikesGive);
|
||||
this.addSubCommand(cmdStrikesInfo);
|
||||
this.addSubCommand(cmdStrikesSet);
|
||||
this.addSubCommand(cmdStrikesTake);
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.commandChain.add(this);
|
||||
FactionsPlugin.getInstance().cmdAutoHelp.execute(context);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.commandChain.add(this);
|
||||
FactionsPlugin.getInstance().cmdAutoHelp.execute(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKES_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKES_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -7,31 +7,31 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
public class CmdStrikesGive extends FCommand {
|
||||
|
||||
|
||||
public CmdStrikesGive() {
|
||||
super();
|
||||
this.aliases.add("give");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
public CmdStrikesGive() {
|
||||
super();
|
||||
this.aliases.add("give");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(target.getStrikes() + 1);
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(target.getStrikes() + 1);
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESGIVE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESGIVE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,32 +6,32 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdStrikesInfo extends FCommand {
|
||||
|
||||
public CmdStrikesInfo() {
|
||||
super();
|
||||
this.aliases.add("info");
|
||||
this.optionalArgs.put("target", "faction");
|
||||
public CmdStrikesInfo() {
|
||||
super();
|
||||
this.aliases.add("info");
|
||||
this.optionalArgs.put("target", "faction");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null) target = context.faction;
|
||||
if (target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
context.msg(TL.COMMAND_STRIKES_INFO, target.getTag(), target.getStrikes());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null) target = context.faction;
|
||||
if (target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
context.msg(TL.COMMAND_STRIKES_INFO, target.getTag(), target.getStrikes());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESINFO_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESINFO_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -6,32 +6,32 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdStrikesSet extends FCommand {
|
||||
|
||||
public CmdStrikesSet() {
|
||||
super();
|
||||
this.aliases.add("set");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
this.requiredArgs.add(1, "amount");
|
||||
public CmdStrikesSet() {
|
||||
super();
|
||||
this.aliases.add("set");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
this.requiredArgs.add(1, "amount");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(context.argAsInt(1));
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(context.argAsInt(1));
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESET_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKESET_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,32 +7,32 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
public class CmdStrikesTake extends FCommand {
|
||||
|
||||
|
||||
public CmdStrikesTake() {
|
||||
super();
|
||||
this.aliases.add("take");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
this.requiredArgs.add(1, "number of strikes");
|
||||
public CmdStrikesTake() {
|
||||
super();
|
||||
this.aliases.add("take");
|
||||
this.requiredArgs.add(0, "faction");
|
||||
this.requiredArgs.add(1, "number of strikes");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(target.getStrikes() - context.argAsInt(1));
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
Faction target = context.argAsFaction(0);
|
||||
if (target == null || target.isSystemFaction()) {
|
||||
context.msg(TL.COMMAND_STRIKES_TARGET_INVALID, context.argAsString(0));
|
||||
return;
|
||||
}
|
||||
target.setStrikes(target.getStrikes() - context.argAsInt(1));
|
||||
context.msg(TL.COMMAND_STRIKES_CHANGED, target.getTag(), target.getStrikes());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKETAKE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STRIKETAKE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -13,93 +13,93 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class CmdStuck extends FCommand {
|
||||
|
||||
public CmdStuck() {
|
||||
super();
|
||||
this.aliases.add("stuck");
|
||||
this.aliases.add("halp!"); // halp!c:
|
||||
public CmdStuck() {
|
||||
super();
|
||||
this.aliases.add("stuck");
|
||||
this.aliases.add("halp!"); // halp!c:
|
||||
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STUCK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.STUCK)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
final Player player = context.player;
|
||||
final Location sentAt = player.getLocation();
|
||||
final FLocation chunk = context.fPlayer.getLastStoodAt();
|
||||
final long delay = FactionsPlugin.getInstance().getConfig().getLong("hcf.stuck.delay", 30);
|
||||
final int radius = FactionsPlugin.getInstance().getConfig().getInt("hcf.stuck.radius", 10);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
final Player player = context.player;
|
||||
final Location sentAt = player.getLocation();
|
||||
final FLocation chunk = context.fPlayer.getLastStoodAt();
|
||||
final long delay = FactionsPlugin.getInstance().getConfig().getLong("hcf.stuck.delay", 30);
|
||||
final int radius = FactionsPlugin.getInstance().getConfig().getInt("hcf.stuck.radius", 10);
|
||||
|
||||
if (FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) {
|
||||
long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis();
|
||||
String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true);
|
||||
context.msg(TL.COMMAND_STUCK_EXISTS, time);
|
||||
} else {
|
||||
if (FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) {
|
||||
long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis();
|
||||
String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true);
|
||||
context.msg(TL.COMMAND_STUCK_EXISTS, time);
|
||||
} else {
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostStuck, TL.COMMAND_STUCK_TOSTUCK.format(context.fPlayer.getName()), TL.COMMAND_STUCK_FORSTUCK.format(context.fPlayer.getName()))) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostStuck, TL.COMMAND_STUCK_TOSTUCK.format(context.fPlayer.getName()), TL.COMMAND_STUCK_FORSTUCK.format(context.fPlayer.getName()))) {
|
||||
return;
|
||||
}
|
||||
|
||||
final int id = Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), new Runnable() {
|
||||
final int id = Bukkit.getScheduler().runTaskLater(FactionsPlugin.getInstance(), new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (!FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// check for world difference or radius exceeding
|
||||
final World world = chunk.getWorld();
|
||||
if (world.getUID() != player.getWorld().getUID() || sentAt.distance(player.getLocation()) > radius) {
|
||||
context.msg(TL.COMMAND_STUCK_OUTSIDE.format(radius));
|
||||
FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId());
|
||||
FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId());
|
||||
return;
|
||||
}
|
||||
|
||||
final Board board = Board.getInstance();
|
||||
// spiral task to find nearest wilderness chunk
|
||||
new SpiralTask(new FLocation(context.player), radius * 2) {
|
||||
@Override
|
||||
public boolean work() {
|
||||
FLocation chunk = currentFLocation();
|
||||
Faction faction = board.getFactionAt(chunk);
|
||||
int buffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0) - 1;
|
||||
if (faction.isWilderness() && !chunk.isOutsideWorldBorder(buffer)) {
|
||||
int cx = FLocation.chunkToBlock((int) chunk.getX());
|
||||
int cz = FLocation.chunkToBlock((int) chunk.getZ());
|
||||
int y = world.getHighestBlockYAt(cx, cz);
|
||||
Location tp = new Location(world, cx, y, cz);
|
||||
context.msg(TL.COMMAND_STUCK_TELEPORT, tp.getBlockX(), tp.getBlockY(), tp.getBlockZ());
|
||||
FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId());
|
||||
FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId());
|
||||
if (!Essentials.handleTeleport(player, tp)) {
|
||||
player.teleport(tp);
|
||||
FactionsPlugin.getInstance().debug("/f stuck used regular teleport, not essentials!");
|
||||
}
|
||||
this.stop();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
@Override
|
||||
public void run() {
|
||||
if (!FactionsPlugin.getInstance().getStuckMap().containsKey(player.getUniqueId())) {
|
||||
return;
|
||||
}
|
||||
}, delay * 20).getTaskId();
|
||||
|
||||
FactionsPlugin.getInstance().getTimers().put(player.getUniqueId(), System.currentTimeMillis() + (delay * 1000));
|
||||
long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis();
|
||||
String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true);
|
||||
context.msg(TL.COMMAND_STUCK_START, time);
|
||||
FactionsPlugin.getInstance().getStuckMap().put(player.getUniqueId(), id);
|
||||
}
|
||||
}
|
||||
// check for world difference or radius exceeding
|
||||
final World world = chunk.getWorld();
|
||||
if (world.getUID() != player.getWorld().getUID() || sentAt.distance(player.getLocation()) > radius) {
|
||||
context.msg(TL.COMMAND_STUCK_OUTSIDE.format(radius));
|
||||
FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId());
|
||||
FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId());
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STUCK_DESCRIPTION;
|
||||
}
|
||||
final Board board = Board.getInstance();
|
||||
// spiral task to find nearest wilderness chunk
|
||||
new SpiralTask(new FLocation(context.player), radius * 2) {
|
||||
@Override
|
||||
public boolean work() {
|
||||
FLocation chunk = currentFLocation();
|
||||
Faction faction = board.getFactionAt(chunk);
|
||||
int buffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0) - 1;
|
||||
if (faction.isWilderness() && !chunk.isOutsideWorldBorder(buffer)) {
|
||||
int cx = FLocation.chunkToBlock((int) chunk.getX());
|
||||
int cz = FLocation.chunkToBlock((int) chunk.getZ());
|
||||
int y = world.getHighestBlockYAt(cx, cz);
|
||||
Location tp = new Location(world, cx, y, cz);
|
||||
context.msg(TL.COMMAND_STUCK_TELEPORT, tp.getBlockX(), tp.getBlockY(), tp.getBlockZ());
|
||||
FactionsPlugin.getInstance().getTimers().remove(player.getUniqueId());
|
||||
FactionsPlugin.getInstance().getStuckMap().remove(player.getUniqueId());
|
||||
if (!Essentials.handleTeleport(player, tp)) {
|
||||
player.teleport(tp);
|
||||
FactionsPlugin.getInstance().debug("/f stuck used regular teleport, not essentials!");
|
||||
}
|
||||
this.stop();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
}, delay * 20).getTaskId();
|
||||
|
||||
FactionsPlugin.getInstance().getTimers().put(player.getUniqueId(), System.currentTimeMillis() + (delay * 1000));
|
||||
long wait = FactionsPlugin.getInstance().getTimers().get(player.getUniqueId()) - System.currentTimeMillis();
|
||||
String time = DurationFormatUtils.formatDuration(wait, TL.COMMAND_STUCK_TIMEFORMAT.toString(), true);
|
||||
context.msg(TL.COMMAND_STUCK_START, time);
|
||||
FactionsPlugin.getInstance().getStuckMap().put(player.getUniqueId(), id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_STUCK_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,75 +13,75 @@ import java.util.ArrayList;
|
||||
|
||||
public class CmdTag extends FCommand {
|
||||
|
||||
public CmdTag() {
|
||||
this.aliases.add("tag");
|
||||
this.aliases.add("rename");
|
||||
public CmdTag() {
|
||||
this.aliases.add("tag");
|
||||
this.aliases.add("rename");
|
||||
|
||||
this.requiredArgs.add("faction tag");
|
||||
this.requiredArgs.add("faction tag");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TAG)
|
||||
.withRole(Role.COLEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TAG)
|
||||
.withRole(Role.COLEADER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String tag = context.argAsString(0);
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
String tag = context.argAsString(0);
|
||||
|
||||
// TODO does not first test cover selfcase?
|
||||
if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) {
|
||||
context.msg(TL.COMMAND_TAG_TAKEN);
|
||||
return;
|
||||
}
|
||||
// TODO does not first test cover selfcase?
|
||||
if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) {
|
||||
context.msg(TL.COMMAND_TAG_TAKEN);
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> errors = MiscUtil.validateTag(tag);
|
||||
if (errors.size() > 0) {
|
||||
context.sendMessage(errors);
|
||||
return;
|
||||
}
|
||||
ArrayList<String> errors = MiscUtil.validateTag(tag);
|
||||
if (errors.size() > 0) {
|
||||
context.sendMessage(errors);
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) {
|
||||
return;
|
||||
}
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||
if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the faction rename event (cancellable)
|
||||
FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(renameEvent);
|
||||
if (renameEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
// trigger the faction rename event (cancellable)
|
||||
FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(renameEvent);
|
||||
if (renameEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) {
|
||||
return;
|
||||
}
|
||||
// then make 'em pay (if applicable)
|
||||
if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String oldtag = context.faction.getTag();
|
||||
context.faction.setTag(tag);
|
||||
String oldtag = context.faction.getTag();
|
||||
context.faction.setTag(tag);
|
||||
|
||||
// Inform
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
||||
fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction));
|
||||
continue;
|
||||
}
|
||||
// Inform
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
||||
fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction));
|
||||
continue;
|
||||
}
|
||||
|
||||
// Broadcast the tag change (if applicable)
|
||||
if (Conf.broadcastTagChanges) {
|
||||
Faction faction = fplayer.getFaction();
|
||||
fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction));
|
||||
}
|
||||
}
|
||||
// Broadcast the tag change (if applicable)
|
||||
if (Conf.broadcastTagChanges) {
|
||||
Faction faction = fplayer.getFaction();
|
||||
fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction));
|
||||
}
|
||||
}
|
||||
|
||||
FTeamWrapper.updatePrefixes(context.faction);
|
||||
}
|
||||
FTeamWrapper.updatePrefixes(context.faction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TAG_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TAG_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -8,33 +8,33 @@ import com.massivecraft.factions.zcore.util.TextUtil;
|
||||
|
||||
public class CmdTitle extends FCommand {
|
||||
|
||||
public CmdTitle() {
|
||||
this.aliases.add("title");
|
||||
this.requiredArgs.add("player name");
|
||||
this.optionalArgs.put("title", "");
|
||||
public CmdTitle() {
|
||||
this.aliases.add("title");
|
||||
this.requiredArgs.add("player name");
|
||||
this.optionalArgs.put("title", "");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TITLE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TITLE)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
context.args.remove(0);
|
||||
String title = TextUtil.implode(context.args, " ");
|
||||
if (!context.canIAdministerYou(context.fPlayer, you)) return;
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostTitle, TL.COMMAND_TITLE_TOCHANGE, TL.COMMAND_TITLE_FORCHANGE)) return;
|
||||
you.setTitle(context.sender, title);
|
||||
// Inform
|
||||
context.faction.msg(TL.COMMAND_TITLE_CHANGED, context.fPlayer.describeTo(context.faction, true), you.describeTo(context.faction, true));
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||
if (you == null) return;
|
||||
context.args.remove(0);
|
||||
String title = TextUtil.implode(context.args, " ");
|
||||
if (!context.canIAdministerYou(context.fPlayer, you)) return;
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!context.payForCommand(Conf.econCostTitle, TL.COMMAND_TITLE_TOCHANGE, TL.COMMAND_TITLE_FORCHANGE)) return;
|
||||
you.setTitle(context.sender, title);
|
||||
// Inform
|
||||
context.faction.msg(TL.COMMAND_TITLE_CHANGED, context.fPlayer.describeTo(context.faction, true), you.describeTo(context.faction, true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TITLE_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TITLE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -6,34 +6,34 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdToggleAllianceChat extends FCommand {
|
||||
|
||||
public CmdToggleAllianceChat() {
|
||||
super();
|
||||
this.aliases.add("tac");
|
||||
this.aliases.add("togglealliancechat");
|
||||
this.aliases.add("ac");
|
||||
public CmdToggleAllianceChat() {
|
||||
super();
|
||||
this.aliases.add("tac");
|
||||
this.aliases.add("togglealliancechat");
|
||||
this.aliases.add("ac");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_ALLIANCE_CHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_ALLIANCE_CHAT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TOGGLEALLIANCECHAT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TOGGLEALLIANCECHAT_DESCRIPTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.factionOnlyChat) {
|
||||
context.msg(TL.COMMAND_CHAT_DISABLED.toString());
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!Conf.factionOnlyChat) {
|
||||
context.msg(TL.COMMAND_CHAT_DISABLED.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
boolean ignoring = context.fPlayer.isIgnoreAllianceChat();
|
||||
boolean ignoring = context.fPlayer.isIgnoreAllianceChat();
|
||||
|
||||
context.msg(ignoring ? TL.COMMAND_TOGGLEALLIANCECHAT_UNIGNORE : TL.COMMAND_TOGGLEALLIANCECHAT_IGNORE);
|
||||
context.fPlayer.setIgnoreAllianceChat(!ignoring);
|
||||
}
|
||||
context.msg(ignoring ? TL.COMMAND_TOGGLEALLIANCECHAT_UNIGNORE : TL.COMMAND_TOGGLEALLIANCECHAT_IGNORE);
|
||||
context.fPlayer.setIgnoreAllianceChat(!ignoring);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,159 +12,159 @@ import java.util.ArrayList;
|
||||
|
||||
public class CmdTop extends FCommand {
|
||||
|
||||
public CmdTop() {
|
||||
super();
|
||||
this.aliases.add("top");
|
||||
this.aliases.add("t");
|
||||
this.requiredArgs.add("criteria");
|
||||
this.optionalArgs.put("page", "1");
|
||||
public CmdTop() {
|
||||
super();
|
||||
this.aliases.add("top");
|
||||
this.aliases.add("t");
|
||||
this.requiredArgs.add("criteria");
|
||||
this.optionalArgs.put("page", "1");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TOP)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TOP)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Can sort by: money, members, online, allies, enemies, power, land.
|
||||
// Get all Factions and remove non player ones.
|
||||
ArrayList<Faction> factionList = Factions.getInstance().getAllFactions();
|
||||
factionList.remove(Factions.getInstance().getWilderness());
|
||||
factionList.remove(Factions.getInstance().getSafeZone());
|
||||
factionList.remove(Factions.getInstance().getWarZone());
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Can sort by: money, members, online, allies, enemies, power, land.
|
||||
// Get all Factions and remove non player ones.
|
||||
ArrayList<Faction> factionList = Factions.getInstance().getAllFactions();
|
||||
factionList.remove(Factions.getInstance().getWilderness());
|
||||
factionList.remove(Factions.getInstance().getSafeZone());
|
||||
factionList.remove(Factions.getInstance().getWarZone());
|
||||
|
||||
String criteria = context.argAsString(0);
|
||||
String criteria = context.argAsString(0);
|
||||
|
||||
// TODO: Better way to sort?
|
||||
if (criteria.equalsIgnoreCase("members")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayers().size();
|
||||
int f2Size = f2.getFPlayers().size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("start")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
long f1start = f1.getFoundedDate();
|
||||
long f2start = f2.getFoundedDate();
|
||||
// flip signs because a smaller date is farther in the past
|
||||
if (f1start > f2start) {
|
||||
return 1;
|
||||
} else if (f1start < f2start) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("power")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getPowerRounded();
|
||||
int f2Size = f2.getPowerRounded();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("land")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getLandRounded();
|
||||
int f2Size = f2.getLandRounded();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("online")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayersWhereOnline(true).size();
|
||||
int f2Size = f2.getFPlayersWhereOnline(true).size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("money") || criteria.equalsIgnoreCase("balance") || criteria.equalsIgnoreCase("bal")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
double f1Size = Econ.getBalance(f1.getAccountId());
|
||||
// Lets get the balance of /all/ the players in the Faction.
|
||||
for (FPlayer fp : f1.getFPlayers()) {
|
||||
f1Size = f1Size + Econ.getBalance(fp.getAccountId());
|
||||
}
|
||||
double f2Size = Econ.getBalance(f2.getAccountId());
|
||||
for (FPlayer fp : f2.getFPlayers()) {
|
||||
f2Size = f2Size + Econ.getBalance(fp.getAccountId());
|
||||
}
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else {
|
||||
context.msg(TL.COMMAND_TOP_INVALID, criteria);
|
||||
}
|
||||
// TODO: Better way to sort?
|
||||
if (criteria.equalsIgnoreCase("members")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayers().size();
|
||||
int f2Size = f2.getFPlayers().size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("start")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
long f1start = f1.getFoundedDate();
|
||||
long f2start = f2.getFoundedDate();
|
||||
// flip signs because a smaller date is farther in the past
|
||||
if (f1start > f2start) {
|
||||
return 1;
|
||||
} else if (f1start < f2start) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("power")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getPowerRounded();
|
||||
int f2Size = f2.getPowerRounded();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("land")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getLandRounded();
|
||||
int f2Size = f2.getLandRounded();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("online")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
int f1Size = f1.getFPlayersWhereOnline(true).size();
|
||||
int f2Size = f2.getFPlayersWhereOnline(true).size();
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else if (criteria.equalsIgnoreCase("money") || criteria.equalsIgnoreCase("balance") || criteria.equalsIgnoreCase("bal")) {
|
||||
factionList.sort((f1, f2) -> {
|
||||
double f1Size = Econ.getBalance(f1.getAccountId());
|
||||
// Lets get the balance of /all/ the players in the Faction.
|
||||
for (FPlayer fp : f1.getFPlayers()) {
|
||||
f1Size = f1Size + Econ.getBalance(fp.getAccountId());
|
||||
}
|
||||
double f2Size = Econ.getBalance(f2.getAccountId());
|
||||
for (FPlayer fp : f2.getFPlayers()) {
|
||||
f2Size = f2Size + Econ.getBalance(fp.getAccountId());
|
||||
}
|
||||
if (f1Size < f2Size) {
|
||||
return 1;
|
||||
} else if (f1Size > f2Size) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
} else {
|
||||
context.msg(TL.COMMAND_TOP_INVALID, criteria);
|
||||
}
|
||||
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
|
||||
final int pageheight = 9;
|
||||
int pagenumber = context.argAsInt(1, 1);
|
||||
int pagecount = (factionList.size() / pageheight) + 1;
|
||||
if (pagenumber > pagecount) {
|
||||
pagenumber = pagecount;
|
||||
} else if (pagenumber < 1) {
|
||||
pagenumber = 1;
|
||||
}
|
||||
int start = (pagenumber - 1) * pageheight;
|
||||
int end = start + pageheight;
|
||||
if (end > factionList.size()) {
|
||||
end = factionList.size();
|
||||
}
|
||||
final int pageheight = 9;
|
||||
int pagenumber = context.argAsInt(1, 1);
|
||||
int pagecount = (factionList.size() / pageheight) + 1;
|
||||
if (pagenumber > pagecount) {
|
||||
pagenumber = pagecount;
|
||||
} else if (pagenumber < 1) {
|
||||
pagenumber = 1;
|
||||
}
|
||||
int start = (pagenumber - 1) * pageheight;
|
||||
int end = start + pageheight;
|
||||
if (end > factionList.size()) {
|
||||
end = factionList.size();
|
||||
}
|
||||
|
||||
lines.add(TL.COMMAND_TOP_TOP.format(criteria.toUpperCase(), pagenumber, pagecount));
|
||||
lines.add(TL.COMMAND_TOP_TOP.format(criteria.toUpperCase(), pagenumber, pagecount));
|
||||
|
||||
int rank = 1;
|
||||
for (Faction faction : factionList.subList(start, end)) {
|
||||
// Get the relation color if player is executing this.
|
||||
String fac = context.sender instanceof Player ? faction.getRelationTo(context.fPlayer).getColor() + faction.getTag() : faction.getTag();
|
||||
lines.add(TL.COMMAND_TOP_LINE.format(rank, fac, getValue(faction, criteria)));
|
||||
rank++;
|
||||
}
|
||||
int rank = 1;
|
||||
for (Faction faction : factionList.subList(start, end)) {
|
||||
// Get the relation color if player is executing this.
|
||||
String fac = context.sender instanceof Player ? faction.getRelationTo(context.fPlayer).getColor() + faction.getTag() : faction.getTag();
|
||||
lines.add(TL.COMMAND_TOP_LINE.format(rank, fac, getValue(faction, criteria)));
|
||||
rank++;
|
||||
}
|
||||
|
||||
context.sendMessage(lines);
|
||||
}
|
||||
context.sendMessage(lines);
|
||||
}
|
||||
|
||||
private String getValue(Faction faction, String criteria) {
|
||||
if (criteria.equalsIgnoreCase("online")) {
|
||||
return String.valueOf(faction.getFPlayersWhereOnline(true).size());
|
||||
} else if (criteria.equalsIgnoreCase("start")) {
|
||||
return TL.sdf.format(faction.getFoundedDate());
|
||||
} else if (criteria.equalsIgnoreCase("members")) {
|
||||
return String.valueOf(faction.getFPlayers().size());
|
||||
} else if (criteria.equalsIgnoreCase("land")) {
|
||||
return String.valueOf(faction.getLandRounded());
|
||||
} else if (criteria.equalsIgnoreCase("power")) {
|
||||
return String.valueOf(faction.getPowerRounded());
|
||||
} else { // Last one is balance, and it has 3 different things it could be.
|
||||
double balance = Econ.getBalance(faction.getAccountId());
|
||||
for (FPlayer fp : faction.getFPlayers()) {
|
||||
balance = Math.round(balance + Econ.getBalance(fp.getAccountId()));
|
||||
}
|
||||
return String.valueOf(balance);
|
||||
}
|
||||
}
|
||||
private String getValue(Faction faction, String criteria) {
|
||||
if (criteria.equalsIgnoreCase("online")) {
|
||||
return String.valueOf(faction.getFPlayersWhereOnline(true).size());
|
||||
} else if (criteria.equalsIgnoreCase("start")) {
|
||||
return TL.sdf.format(faction.getFoundedDate());
|
||||
} else if (criteria.equalsIgnoreCase("members")) {
|
||||
return String.valueOf(faction.getFPlayers().size());
|
||||
} else if (criteria.equalsIgnoreCase("land")) {
|
||||
return String.valueOf(faction.getLandRounded());
|
||||
} else if (criteria.equalsIgnoreCase("power")) {
|
||||
return String.valueOf(faction.getPowerRounded());
|
||||
} else { // Last one is balance, and it has 3 different things it could be.
|
||||
double balance = Econ.getBalance(faction.getAccountId());
|
||||
for (FPlayer fp : faction.getFPlayers()) {
|
||||
balance = Math.round(balance + Econ.getBalance(fp.getAccountId()));
|
||||
}
|
||||
return String.valueOf(balance);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TOP_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TOP_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -9,37 +9,37 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdTpBanner extends FCommand {
|
||||
|
||||
public CmdTpBanner() {
|
||||
super();
|
||||
this.aliases.add("tpbanner");
|
||||
public CmdTpBanner() {
|
||||
super();
|
||||
this.aliases.add("tpbanner");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TPBANNER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.TPBANNER)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fbanners.Enabled")) {
|
||||
return;
|
||||
}
|
||||
|
||||
final FactionsPlayerListener fpl = new FactionsPlayerListener();
|
||||
final FactionsPlayerListener fpl = new FactionsPlayerListener();
|
||||
|
||||
if (FactionsBlockListener.bannerLocations.containsKey(context.fPlayer.getTag())) {
|
||||
context.msg(TL.COMMAND_TPBANNER_SUCCESS);
|
||||
context.doWarmUp(WarmUpUtil.Warmup.BANNER, TL.WARMUPS_NOTIFY_TELEPORT, "Banner", () -> {
|
||||
context.player.teleport(FactionsBlockListener.bannerLocations.get(context.fPlayer.getTag()));
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-banner", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_TPBANNER_NOTSET);
|
||||
}
|
||||
if (FactionsBlockListener.bannerLocations.containsKey(context.fPlayer.getTag())) {
|
||||
context.msg(TL.COMMAND_TPBANNER_SUCCESS);
|
||||
context.doWarmUp(WarmUpUtil.Warmup.BANNER, TL.WARMUPS_NOTIFY_TELEPORT, "Banner", () -> {
|
||||
context.player.teleport(FactionsBlockListener.bannerLocations.get(context.fPlayer.getTag()));
|
||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-banner", 0));
|
||||
} else {
|
||||
context.msg(TL.COMMAND_TPBANNER_NOTSET);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TPBANNER_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_TPBANNER_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -8,47 +8,47 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdUnban extends FCommand {
|
||||
|
||||
public CmdUnban() {
|
||||
super();
|
||||
this.aliases.add("unban");
|
||||
this.requiredArgs.add("target");
|
||||
public CmdUnban() {
|
||||
super();
|
||||
this.aliases.add("unban");
|
||||
this.requiredArgs.add("target");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.BAN)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.BAN)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Good on permission checks. Now lets just ban the player.
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return; // the above method sends a message if fails to find someone.
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
// Good on permission checks. Now lets just ban the player.
|
||||
FPlayer target = context.argAsFPlayer(0);
|
||||
if (target == null) {
|
||||
return; // the above method sends a message if fails to find someone.
|
||||
}
|
||||
|
||||
if (target.getFaction() != context.fPlayer.getFaction()) {
|
||||
if (target.getFaction().getAccess(context.fPlayer, PermissableAction.BAN) != Access.ALLOW) {
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
context.fPlayer.msg(TL.COMMAND_UNBAN_TARGET_IN_OTHER_FACTION);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (target.getFaction() != context.fPlayer.getFaction()) {
|
||||
if (target.getFaction().getAccess(context.fPlayer, PermissableAction.BAN) != Access.ALLOW) {
|
||||
if (!context.fPlayer.isAdminBypassing()) {
|
||||
context.fPlayer.msg(TL.COMMAND_UNBAN_TARGET_IN_OTHER_FACTION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!context.faction.isBanned(target)) {
|
||||
context.msg(TL.COMMAND_UNBAN_NOTBANNED, target.getName());
|
||||
return;
|
||||
}
|
||||
if (!context.faction.isBanned(target)) {
|
||||
context.msg(TL.COMMAND_UNBAN_NOTBANNED, target.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
context.faction.unban(target);
|
||||
context.faction.unban(target);
|
||||
|
||||
context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName());
|
||||
target.msg(TL.COMMAND_UNBAN_TARGET, context.faction.getTag(target));
|
||||
}
|
||||
context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName());
|
||||
target.msg(TL.COMMAND_UNBAN_TARGET, context.faction.getTag(target));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_UNBAN_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_UNBAN_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
@ -6,30 +6,30 @@ import com.massivecraft.factions.zcore.fupgrades.FUpgradesGUI;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdUpgrades extends FCommand {
|
||||
public CmdUpgrades() {
|
||||
super();
|
||||
this.aliases.add("upgrades");
|
||||
this.aliases.add("upgrade");
|
||||
public CmdUpgrades() {
|
||||
super();
|
||||
this.aliases.add("upgrades");
|
||||
this.aliases.add("upgrade");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.UPGRADES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.UPGRADES)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fupgrades.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
new FUpgradesGUI().openMainMenu(context.fPlayer);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fupgrades.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
new FUpgradesGUI().openMainMenu(context.fPlayer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_UPGRADES_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_UPGRADES_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -13,58 +13,58 @@ import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class CmdVault extends FCommand {
|
||||
|
||||
public CmdVault() {
|
||||
this.aliases.add("vault");
|
||||
public CmdVault() {
|
||||
this.aliases.add("vault");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VAULT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.VAULT)
|
||||
.build();
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VAULT)
|
||||
.playerOnly()
|
||||
.memberOnly()
|
||||
.withAction(PermissableAction.VAULT)
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fvault.Enabled")) {
|
||||
context.fPlayer.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.fPlayer.isInVault()) {
|
||||
context.player.closeInventory();
|
||||
return;
|
||||
}
|
||||
if (context.fPlayer.isInVault()) {
|
||||
context.player.closeInventory();
|
||||
return;
|
||||
}
|
||||
|
||||
context.fPlayer.setInVault(true);
|
||||
Location vaultLocation = context.faction.getVault();
|
||||
if (vaultLocation == null) {
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
FLocation vaultFLocation = new FLocation(vaultLocation);
|
||||
if (Board.getInstance().getFactionAt(vaultFLocation) != context.faction) {
|
||||
context.faction.setVault(null);
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
if (vaultLocation.getBlock().getType() != Material.CHEST) {
|
||||
context.faction.setVault(null);
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
Chest chest = (Chest) vaultLocation.getBlock().getState();
|
||||
Inventory chestInv = chest.getBlockInventory();
|
||||
context.msg(TL.COMMAND_VAULT_OPENING);
|
||||
context.player.openInventory(chestInv);
|
||||
context.fPlayer.setInVault(true);
|
||||
Location vaultLocation = context.faction.getVault();
|
||||
if (vaultLocation == null) {
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
FLocation vaultFLocation = new FLocation(vaultLocation);
|
||||
if (Board.getInstance().getFactionAt(vaultFLocation) != context.faction) {
|
||||
context.faction.setVault(null);
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
if (vaultLocation.getBlock().getType() != Material.CHEST) {
|
||||
context.faction.setVault(null);
|
||||
context.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
Chest chest = (Chest) vaultLocation.getBlock().getState();
|
||||
Inventory chestInv = chest.getBlockInventory();
|
||||
context.msg(TL.COMMAND_VAULT_OPENING);
|
||||
context.player.openInventory(chestInv);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VAULT_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VAULT_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
@ -7,22 +7,22 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdVersion extends FCommand {
|
||||
|
||||
public CmdVersion() {
|
||||
this.aliases.add("version");
|
||||
this.aliases.add("ver");
|
||||
public CmdVersion() {
|
||||
this.aliases.add("version");
|
||||
this.aliases.add("ver");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VERSION)
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VERSION)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.msg(TL.COMMAND_VERSION_NAME); // Did this so people can differentiate between SavageFactions and FactionsUUID (( Requested Feature ))
|
||||
context.msg(TL.COMMAND_VERSION_VERSION, FactionsPlugin.getInstance().getDescription().getFullName());
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.msg(TL.COMMAND_VERSION_NAME); // Did this so people can differentiate between SavageFactions and FactionsUUID (( Requested Feature ))
|
||||
context.msg(TL.COMMAND_VERSION_VERSION, FactionsPlugin.getInstance().getDescription().getFullName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VERSION_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VERSION_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -7,37 +7,37 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdViewChest extends FCommand {
|
||||
|
||||
public CmdViewChest() {
|
||||
super();
|
||||
this.aliases.add("viewchest");
|
||||
this.aliases.add("viewpv");
|
||||
public CmdViewChest() {
|
||||
super();
|
||||
this.aliases.add("viewchest");
|
||||
this.aliases.add("viewpv");
|
||||
|
||||
this.requiredArgs.add("faction name");
|
||||
this.requiredArgs.add("faction name");
|
||||
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VIEWCHEST)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
this.requirements = new CommandRequirements.Builder(Permission.VIEWCHEST)
|
||||
.playerOnly()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fchest.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("fchest.Enabled")) {
|
||||
context.msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
Faction myFaction = context.fPlayer.getFaction();
|
||||
Faction myFaction = context.fPlayer.getFaction();
|
||||
|
||||
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : myFaction);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
context.player.openInventory(context.faction.getChestInventory());
|
||||
}
|
||||
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : myFaction);
|
||||
if (faction == null) {
|
||||
return;
|
||||
}
|
||||
context.player.openInventory(context.faction.getChestInventory());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VIEWCHEST_DESCRIPTION;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_VIEWCHEST_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,400 +19,400 @@ import java.util.List;
|
||||
*/
|
||||
public class CommandContext {
|
||||
|
||||
public CommandSender sender;
|
||||
public CommandSender sender;
|
||||
|
||||
public Player player;
|
||||
public FPlayer fPlayer;
|
||||
public Faction faction;
|
||||
public Player player;
|
||||
public FPlayer fPlayer;
|
||||
public Faction faction;
|
||||
|
||||
public List<String> args;
|
||||
public String alias;
|
||||
public List<String> args;
|
||||
public String alias;
|
||||
|
||||
public List<FCommand> commandChain = new ArrayList<>(); // The command chain used to execute this command
|
||||
public List<FCommand> commandChain = new ArrayList<>(); // The command chain used to execute this command
|
||||
|
||||
public CommandContext(CommandSender sender, List<String> args, String alias) {
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
this.alias = alias;
|
||||
public CommandContext(CommandSender sender, List<String> args, String alias) {
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
this.alias = alias;
|
||||
|
||||
if (sender instanceof Player) {
|
||||
this.player = (Player) sender;
|
||||
this.fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||
this.faction = fPlayer.getFaction();
|
||||
}
|
||||
}
|
||||
if (sender instanceof Player) {
|
||||
this.player = (Player) sender;
|
||||
this.fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||
this.faction = fPlayer.getFaction();
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Message Sending Helpers
|
||||
// -------------------------------------------- //
|
||||
// -------------------------------------------- //
|
||||
// Message Sending Helpers
|
||||
// -------------------------------------------- //
|
||||
|
||||
public void msg(String str, Object... args) {
|
||||
sender.sendMessage(FactionsPlugin.getInstance().txt.parse(str, args));
|
||||
}
|
||||
public void msg(String str, Object... args) {
|
||||
sender.sendMessage(FactionsPlugin.getInstance().txt.parse(str, args));
|
||||
}
|
||||
|
||||
public void msg(TL translation, Object... args) {
|
||||
sender.sendMessage(FactionsPlugin.getInstance().txt.parse(translation.toString(), args));
|
||||
}
|
||||
public void msg(TL translation, Object... args) {
|
||||
sender.sendMessage(FactionsPlugin.getInstance().txt.parse(translation.toString(), args));
|
||||
}
|
||||
|
||||
public void sendMessage(String msg) {
|
||||
sender.sendMessage(msg);
|
||||
}
|
||||
public void sendMessage(String msg) {
|
||||
sender.sendMessage(msg);
|
||||
}
|
||||
|
||||
public void sendMessage(List<String> msgs) {
|
||||
for (String msg : msgs) {
|
||||
this.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
public void sendMessage(List<String> msgs) {
|
||||
for (String msg : msgs) {
|
||||
this.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendFancyMessage(FancyMessage message) {
|
||||
message.send(sender);
|
||||
}
|
||||
public void sendFancyMessage(FancyMessage message) {
|
||||
message.send(sender);
|
||||
}
|
||||
|
||||
public void sendFancyMessage(List<FancyMessage> messages) {
|
||||
for (FancyMessage m : messages) {
|
||||
sendFancyMessage(m);
|
||||
}
|
||||
}
|
||||
public void sendFancyMessage(List<FancyMessage> messages) {
|
||||
for (FancyMessage m : messages) {
|
||||
sendFancyMessage(m);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Clean this UP
|
||||
// -------------------------------------------- //
|
||||
// Argument Readers
|
||||
// -------------------------------------------- //
|
||||
// TODO: Clean this UP
|
||||
// -------------------------------------------- //
|
||||
// Argument Readers
|
||||
// -------------------------------------------- //
|
||||
|
||||
// Is set? ======================
|
||||
public boolean argIsSet(int idx) {
|
||||
return args.size() >= idx + 1;
|
||||
}
|
||||
// Is set? ======================
|
||||
public boolean argIsSet(int idx) {
|
||||
return args.size() >= idx + 1;
|
||||
}
|
||||
|
||||
// STRING ======================
|
||||
public String argAsString(int idx, String def) {
|
||||
if (args.size() < idx + 1) {
|
||||
return def;
|
||||
}
|
||||
return args.get(idx);
|
||||
}
|
||||
// STRING ======================
|
||||
public String argAsString(int idx, String def) {
|
||||
if (args.size() < idx + 1) {
|
||||
return def;
|
||||
}
|
||||
return args.get(idx);
|
||||
}
|
||||
|
||||
public String argAsString(int idx) {
|
||||
return argAsString(idx, null);
|
||||
}
|
||||
public String argAsString(int idx) {
|
||||
return argAsString(idx, null);
|
||||
}
|
||||
|
||||
// INT ======================
|
||||
public Integer strAsInt(String str, Integer def) {
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
try {
|
||||
return Integer.parseInt(str);
|
||||
} catch (Exception e) {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
// INT ======================
|
||||
public Integer strAsInt(String str, Integer def) {
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
try {
|
||||
return Integer.parseInt(str);
|
||||
} catch (Exception e) {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public Integer argAsInt(int idx, Integer def) {
|
||||
return strAsInt(argAsString(idx), def);
|
||||
}
|
||||
public Integer argAsInt(int idx, Integer def) {
|
||||
return strAsInt(argAsString(idx), def);
|
||||
}
|
||||
|
||||
public Integer argAsInt(int idx) {
|
||||
return argAsInt(idx, null);
|
||||
}
|
||||
public Integer argAsInt(int idx) {
|
||||
return argAsInt(idx, null);
|
||||
}
|
||||
|
||||
// Double ======================
|
||||
public Double strAsDouble(String str, Double def) {
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
try {
|
||||
return Double.parseDouble(str);
|
||||
} catch (Exception e) {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
// Double ======================
|
||||
public Double strAsDouble(String str, Double def) {
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
try {
|
||||
return Double.parseDouble(str);
|
||||
} catch (Exception e) {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public Double argAsDouble(int idx, Double def) {
|
||||
return strAsDouble(argAsString(idx), def);
|
||||
}
|
||||
public Double argAsDouble(int idx, Double def) {
|
||||
return strAsDouble(argAsString(idx), def);
|
||||
}
|
||||
|
||||
public Double argAsDouble(int idx) {
|
||||
return argAsDouble(idx, null);
|
||||
}
|
||||
public Double argAsDouble(int idx) {
|
||||
return argAsDouble(idx, null);
|
||||
}
|
||||
|
||||
// TODO: Go through the str conversion for the other arg-readers as well.
|
||||
// Boolean ======================
|
||||
public Boolean strAsBool(String str) {
|
||||
str = str.toLowerCase();
|
||||
return str.startsWith("y") || str.startsWith("t") || str.startsWith("on") || str.startsWith("+") || str.startsWith("1");
|
||||
}
|
||||
// TODO: Go through the str conversion for the other arg-readers as well.
|
||||
// Boolean ======================
|
||||
public Boolean strAsBool(String str) {
|
||||
str = str.toLowerCase();
|
||||
return str.startsWith("y") || str.startsWith("t") || str.startsWith("on") || str.startsWith("+") || str.startsWith("1");
|
||||
}
|
||||
|
||||
public Boolean argAsBool(int idx, boolean def) {
|
||||
String str = argAsString(idx);
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
public Boolean argAsBool(int idx, boolean def) {
|
||||
String str = argAsString(idx);
|
||||
if (str == null) {
|
||||
return def;
|
||||
}
|
||||
|
||||
return strAsBool(str);
|
||||
}
|
||||
return strAsBool(str);
|
||||
}
|
||||
|
||||
public Boolean argAsBool(int idx) {
|
||||
return argAsBool(idx, false);
|
||||
}
|
||||
public Boolean argAsBool(int idx) {
|
||||
return argAsBool(idx, false);
|
||||
}
|
||||
|
||||
// PLAYER ======================
|
||||
public Player strAsPlayer(String name, Player def, boolean msg) {
|
||||
Player ret = def;
|
||||
// PLAYER ======================
|
||||
public Player strAsPlayer(String name, Player def, boolean msg) {
|
||||
Player ret = def;
|
||||
|
||||
if (name != null) {
|
||||
Player player = Bukkit.getServer().getPlayer(name);
|
||||
if (player != null) {
|
||||
ret = player;
|
||||
}
|
||||
}
|
||||
if (name != null) {
|
||||
Player player = Bukkit.getServer().getPlayer(name);
|
||||
if (player != null) {
|
||||
ret = player;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOPLAYERFOUND.format(name));
|
||||
}
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOPLAYERFOUND.format(name));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Player argAsPlayer(int idx, Player def, boolean msg) {
|
||||
return this.strAsPlayer(argAsString(idx), def, msg);
|
||||
}
|
||||
public Player argAsPlayer(int idx, Player def, boolean msg) {
|
||||
return this.strAsPlayer(argAsString(idx), def, msg);
|
||||
}
|
||||
|
||||
public Player argAsPlayer(int idx, Player def) {
|
||||
return argAsPlayer(idx, def, true);
|
||||
}
|
||||
public Player argAsPlayer(int idx, Player def) {
|
||||
return argAsPlayer(idx, def, true);
|
||||
}
|
||||
|
||||
public Player argAsPlayer(int idx) {
|
||||
return argAsPlayer(idx, null);
|
||||
}
|
||||
public Player argAsPlayer(int idx) {
|
||||
return argAsPlayer(idx, null);
|
||||
}
|
||||
|
||||
// BEST PLAYER MATCH ======================
|
||||
public Player strAsBestPlayerMatch(String name, Player def, boolean msg) {
|
||||
Player ret = def;
|
||||
// BEST PLAYER MATCH ======================
|
||||
public Player strAsBestPlayerMatch(String name, Player def, boolean msg) {
|
||||
Player ret = def;
|
||||
|
||||
if (name != null) {
|
||||
List<Player> players = Bukkit.getServer().matchPlayer(name);
|
||||
if (players.size() > 0) {
|
||||
ret = players.get(0);
|
||||
}
|
||||
}
|
||||
if (name != null) {
|
||||
List<Player> players = Bukkit.getServer().matchPlayer(name);
|
||||
if (players.size() > 0) {
|
||||
ret = players.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOPLAYERMATCH.format(name));
|
||||
}
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOPLAYERMATCH.format(name));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Player argAsBestPlayerMatch(int idx, Player def, boolean msg) {
|
||||
return this.strAsBestPlayerMatch(argAsString(idx), def, msg);
|
||||
}
|
||||
public Player argAsBestPlayerMatch(int idx, Player def, boolean msg) {
|
||||
return this.strAsBestPlayerMatch(argAsString(idx), def, msg);
|
||||
}
|
||||
|
||||
public Player argAsBestPlayerMatch(int idx, Player def) {
|
||||
return argAsBestPlayerMatch(idx, def, true);
|
||||
}
|
||||
public Player argAsBestPlayerMatch(int idx, Player def) {
|
||||
return argAsBestPlayerMatch(idx, def, true);
|
||||
}
|
||||
|
||||
public Player argAsBestPlayerMatch(int idx) {
|
||||
return argAsPlayer(idx, null);
|
||||
}
|
||||
public Player argAsBestPlayerMatch(int idx) {
|
||||
return argAsPlayer(idx, null);
|
||||
}
|
||||
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Faction Argument Readers
|
||||
// -------------------------------------------- //
|
||||
// -------------------------------------------- //
|
||||
// Faction Argument Readers
|
||||
// -------------------------------------------- //
|
||||
|
||||
// FPLAYER ======================
|
||||
public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg) {
|
||||
FPlayer ret = def;
|
||||
// FPLAYER ======================
|
||||
public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg) {
|
||||
FPlayer ret = def;
|
||||
|
||||
if (name != null) {
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getAllFPlayers()) {
|
||||
if (fplayer.getName().equalsIgnoreCase(name)) {
|
||||
ret = fplayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (name != null) {
|
||||
for (FPlayer fplayer : FPlayers.getInstance().getAllFPlayers()) {
|
||||
if (fplayer.getName().equalsIgnoreCase(name)) {
|
||||
ret = fplayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null) {
|
||||
msg(TL.GENERIC_NOPLAYERFOUND, name);
|
||||
}
|
||||
if (msg && ret == null) {
|
||||
msg(TL.GENERIC_NOPLAYERFOUND, name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg) {
|
||||
return this.strAsFPlayer(argAsString(idx), def, msg);
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg) {
|
||||
return this.strAsFPlayer(argAsString(idx), def, msg);
|
||||
}
|
||||
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def) {
|
||||
return argAsFPlayer(idx, def, true);
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def) {
|
||||
return argAsFPlayer(idx, def, true);
|
||||
}
|
||||
|
||||
public FPlayer argAsFPlayer(int idx) {
|
||||
return argAsFPlayer(idx, null);
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx) {
|
||||
return argAsFPlayer(idx, null);
|
||||
}
|
||||
|
||||
// BEST FPLAYER MATCH ======================
|
||||
public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg) {
|
||||
return strAsFPlayer(name, def, msg);
|
||||
}
|
||||
// BEST FPLAYER MATCH ======================
|
||||
public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg) {
|
||||
return strAsFPlayer(name, def, msg);
|
||||
}
|
||||
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg) {
|
||||
return this.strAsBestFPlayerMatch(argAsString(idx), def, msg);
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg) {
|
||||
return this.strAsBestFPlayerMatch(argAsString(idx), def, msg);
|
||||
}
|
||||
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def) {
|
||||
return argAsBestFPlayerMatch(idx, def, true);
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def) {
|
||||
return argAsBestFPlayerMatch(idx, def, true);
|
||||
}
|
||||
|
||||
public FPlayer argAsBestFPlayerMatch(int idx) {
|
||||
return argAsBestFPlayerMatch(idx, null);
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx) {
|
||||
return argAsBestFPlayerMatch(idx, null);
|
||||
}
|
||||
|
||||
// FACTION ======================
|
||||
public Faction strAsFaction(String name, Faction def, boolean msg) {
|
||||
Faction ret = def;
|
||||
// FACTION ======================
|
||||
public Faction strAsFaction(String name, Faction def, boolean msg) {
|
||||
Faction ret = def;
|
||||
|
||||
if (name != null) {
|
||||
// First we try an exact match
|
||||
Faction faction = Factions.getInstance().getByTag(name); // Checks for faction name match.
|
||||
if (name != null) {
|
||||
// First we try an exact match
|
||||
Faction faction = Factions.getInstance().getByTag(name); // Checks for faction name match.
|
||||
|
||||
// Now lets try for warzone / safezone. Helpful for custom warzone / safezone names.
|
||||
// Do this after we check for an exact match in case they rename the warzone / safezone
|
||||
// and a player created faction took one of the names.
|
||||
if (faction == null) {
|
||||
if (name.equalsIgnoreCase("warzone")) {
|
||||
faction = Factions.getInstance().getWarZone();
|
||||
} else if (name.equalsIgnoreCase("safezone")) {
|
||||
faction = Factions.getInstance().getSafeZone();
|
||||
}
|
||||
}
|
||||
// Now lets try for warzone / safezone. Helpful for custom warzone / safezone names.
|
||||
// Do this after we check for an exact match in case they rename the warzone / safezone
|
||||
// and a player created faction took one of the names.
|
||||
if (faction == null) {
|
||||
if (name.equalsIgnoreCase("warzone")) {
|
||||
faction = Factions.getInstance().getWarZone();
|
||||
} else if (name.equalsIgnoreCase("safezone")) {
|
||||
faction = Factions.getInstance().getSafeZone();
|
||||
}
|
||||
}
|
||||
|
||||
// Next we match faction tags
|
||||
if (faction == null) {
|
||||
faction = Factions.getInstance().getBestTagMatch(name);
|
||||
}
|
||||
// Next we match faction tags
|
||||
if (faction == null) {
|
||||
faction = Factions.getInstance().getBestTagMatch(name);
|
||||
}
|
||||
|
||||
// Next we match player names
|
||||
if (faction == null) {
|
||||
FPlayer fplayer = strAsFPlayer(name, null, false);
|
||||
if (fplayer != null) {
|
||||
faction = fplayer.getFaction();
|
||||
}
|
||||
}
|
||||
// Next we match player names
|
||||
if (faction == null) {
|
||||
FPlayer fplayer = strAsFPlayer(name, null, false);
|
||||
if (fplayer != null) {
|
||||
faction = fplayer.getFaction();
|
||||
}
|
||||
}
|
||||
|
||||
if (faction != null) {
|
||||
ret = faction;
|
||||
}
|
||||
}
|
||||
if (faction != null) {
|
||||
ret = faction;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOFACTION_FOUND.format(name));
|
||||
}
|
||||
if (msg && ret == null) {
|
||||
sender.sendMessage(TL.GENERIC_NOFACTION_FOUND.format(name));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Faction argAsFaction(int idx, Faction def, boolean msg) {
|
||||
return this.strAsFaction(argAsString(idx), def, msg);
|
||||
}
|
||||
public Faction argAsFaction(int idx, Faction def, boolean msg) {
|
||||
return this.strAsFaction(argAsString(idx), def, msg);
|
||||
}
|
||||
|
||||
public Faction argAsFaction(int idx, Faction def) {
|
||||
return argAsFaction(idx, def, true);
|
||||
}
|
||||
public Faction argAsFaction(int idx, Faction def) {
|
||||
return argAsFaction(idx, def, true);
|
||||
}
|
||||
|
||||
public Faction argAsFaction(int idx) {
|
||||
return argAsFaction(idx, null);
|
||||
}
|
||||
public Faction argAsFaction(int idx) {
|
||||
return argAsFaction(idx, null);
|
||||
}
|
||||
|
||||
/*
|
||||
Assertions
|
||||
*/
|
||||
|
||||
public boolean assertHasFaction() {
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
public boolean assertHasFaction() {
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!fPlayer.hasFaction()) {
|
||||
sendMessage("You are not member of any faction.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (!fPlayer.hasFaction()) {
|
||||
sendMessage("You are not member of any faction.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean assertMinRole(Role role) {
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
public boolean assertMinRole(Role role) {
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fPlayer.getRole().value < role.value) {
|
||||
msg("<b>You <h>must be " + role);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (fPlayer.getRole().value < role.value) {
|
||||
msg("<b>You <h>must be " + role);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
Common Methods
|
||||
*/
|
||||
public boolean canIAdministerYou(FPlayer i, FPlayer you) {
|
||||
if (!i.getFaction().equals(you.getFaction())) {
|
||||
i.msg(TL.COMMAND_CONTEXT_ADMINISTER_DIF_FACTION, you.describeTo(i, true));
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
Common Methods
|
||||
*/
|
||||
public boolean canIAdministerYou(FPlayer i, FPlayer you) {
|
||||
if (!i.getFaction().equals(you.getFaction())) {
|
||||
i.msg(TL.COMMAND_CONTEXT_ADMINISTER_DIF_FACTION, you.describeTo(i, true));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (i.getRole().value > you.getRole().value || i.getRole().equals(Role.LEADER)) return true;
|
||||
if (i.getRole().value > you.getRole().value || i.getRole().equals(Role.LEADER)) return true;
|
||||
|
||||
if (you.getRole().equals(Role.LEADER)) i.msg(TL.COMMAND_CONTEXT_ADMINISTER_ADMIN_REQUIRED);
|
||||
if (you.getRole().equals(Role.LEADER)) i.msg(TL.COMMAND_CONTEXT_ADMINISTER_ADMIN_REQUIRED);
|
||||
|
||||
else if (i.getRole().equals(Role.MODERATOR)) {
|
||||
else if (i.getRole().equals(Role.MODERATOR)) {
|
||||
|
||||
if (i == you) return true; //Moderators can control themselves
|
||||
else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_SAME_RANK_CONTROL);
|
||||
if (i == you) return true; //Moderators can control themselves
|
||||
else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_SAME_RANK_CONTROL);
|
||||
|
||||
} else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_MOD_REQUIRED);
|
||||
} else i.msg(TL.COMMAND_CONTEXT_ADMINISTER_MOD_REQUIRED);
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
||||
public boolean payForCommand(double cost, String toDoThis, String forDoingThis) {
|
||||
if (!Econ.shouldBeUsed() || this.fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) {
|
||||
return true;
|
||||
}
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
||||
public boolean payForCommand(double cost, String toDoThis, String forDoingThis) {
|
||||
if (!Econ.shouldBeUsed() || this.fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) {
|
||||
return Econ.modifyMoney(faction, -cost, toDoThis, forDoingThis);
|
||||
} else {
|
||||
return Econ.modifyMoney(fPlayer, -cost, toDoThis, forDoingThis);
|
||||
}
|
||||
}
|
||||
if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) {
|
||||
return Econ.modifyMoney(faction, -cost, toDoThis, forDoingThis);
|
||||
} else {
|
||||
return Econ.modifyMoney(fPlayer, -cost, toDoThis, forDoingThis);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean payForCommand(double cost, TL toDoThis, TL forDoingThis) {
|
||||
return payForCommand(cost, toDoThis.toString(), forDoingThis.toString());
|
||||
}
|
||||
public boolean payForCommand(double cost, TL toDoThis, TL forDoingThis) {
|
||||
return payForCommand(cost, toDoThis.toString(), forDoingThis.toString());
|
||||
}
|
||||
|
||||
// like above, but just make sure they can pay; returns true unless person can't afford the cost
|
||||
public boolean canAffordCommand(double cost, String toDoThis) {
|
||||
if (!Econ.shouldBeUsed() || fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) {
|
||||
return true;
|
||||
}
|
||||
// like above, but just make sure they can pay; returns true unless person can't afford the cost
|
||||
public boolean canAffordCommand(double cost, String toDoThis) {
|
||||
if (!Econ.shouldBeUsed() || fPlayer == null || cost == 0.0 || fPlayer.isAdminBypassing()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) {
|
||||
return Econ.hasAtLeast(faction, cost, toDoThis);
|
||||
} else {
|
||||
return Econ.hasAtLeast(fPlayer, cost, toDoThis);
|
||||
}
|
||||
}
|
||||
if (Conf.bankEnabled && Conf.bankFactionPaysCosts && fPlayer.hasFaction()) {
|
||||
return Econ.hasAtLeast(faction, cost, toDoThis);
|
||||
} else {
|
||||
return Econ.hasAtLeast(fPlayer, cost, toDoThis);
|
||||
}
|
||||
}
|
||||
|
||||
public void doWarmUp(WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) {
|
||||
this.doWarmUp(fPlayer, warmup, translationKey, action, runnable, delay);
|
||||
}
|
||||
public void doWarmUp(WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) {
|
||||
this.doWarmUp(fPlayer, warmup, translationKey, action, runnable, delay);
|
||||
}
|
||||
|
||||
public void doWarmUp(FPlayer player, WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) {
|
||||
WarmUpUtil.process(player, warmup, translationKey, action, runnable, delay);
|
||||
}
|
||||
public void doWarmUp(FPlayer player, WarmUpUtil.Warmup warmup, TL translationKey, String action, Runnable runnable, long delay) {
|
||||
WarmUpUtil.process(player, warmup, translationKey, action, runnable, delay);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,147 +9,147 @@ import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CommandRequirements {
|
||||
|
||||
// Permission required to execute command
|
||||
public Permission permission;
|
||||
// Permission required to execute command
|
||||
public Permission permission;
|
||||
|
||||
// Must be player
|
||||
public boolean playerOnly;
|
||||
// Must be member of faction
|
||||
public boolean memberOnly;
|
||||
// Must be player
|
||||
public boolean playerOnly;
|
||||
// Must be member of faction
|
||||
public boolean memberOnly;
|
||||
|
||||
// Must be atleast this role
|
||||
public Role role;
|
||||
// Must be atleast this role
|
||||
public Role role;
|
||||
|
||||
// PermissableAction check if the player has allow for this before checking the role
|
||||
public PermissableAction action;
|
||||
// PermissableAction check if the player has allow for this before checking the role
|
||||
public PermissableAction action;
|
||||
|
||||
// Commodore stuffs
|
||||
public Class<? extends BrigadierProvider> brigadier;
|
||||
// Commodore stuffs
|
||||
public Class<? extends BrigadierProvider> brigadier;
|
||||
|
||||
// Edge case handling
|
||||
public boolean errorOnManyArgs;
|
||||
public boolean disableOnLock;
|
||||
// Edge case handling
|
||||
public boolean errorOnManyArgs;
|
||||
public boolean disableOnLock;
|
||||
|
||||
private CommandRequirements(Permission permission, boolean playerOnly, boolean memberOnly, Role role, PermissableAction action, Class<? extends BrigadierProvider> brigadier) {
|
||||
this.permission = permission;
|
||||
this.playerOnly = playerOnly;
|
||||
this.memberOnly = memberOnly;
|
||||
this.role = role;
|
||||
this.action = action;
|
||||
this.brigadier = brigadier;
|
||||
}
|
||||
private CommandRequirements(Permission permission, boolean playerOnly, boolean memberOnly, Role role, PermissableAction action, Class<? extends BrigadierProvider> brigadier) {
|
||||
this.permission = permission;
|
||||
this.playerOnly = playerOnly;
|
||||
this.memberOnly = memberOnly;
|
||||
this.role = role;
|
||||
this.action = action;
|
||||
this.brigadier = brigadier;
|
||||
}
|
||||
|
||||
public boolean computeRequirements(CommandContext context, boolean informIfNot) {
|
||||
// Did not modify CommandRequirements return true
|
||||
if (permission == null) {
|
||||
return true;
|
||||
}
|
||||
public boolean computeRequirements(CommandContext context, boolean informIfNot) {
|
||||
// Did not modify CommandRequirements return true
|
||||
if (permission == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (context.player != null) {
|
||||
// Is Player
|
||||
if (!context.fPlayer.hasFaction() && memberOnly) {
|
||||
if (informIfNot) context.msg(TL.GENERIC_MEMBERONLY);
|
||||
if (context.player != null) {
|
||||
// Is Player
|
||||
if (!context.fPlayer.hasFaction() && memberOnly) {
|
||||
if (informIfNot) context.msg(TL.GENERIC_MEMBERONLY);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!FactionsPlugin.getInstance().perm.has(context.sender, permission.node, informIfNot)) return false;
|
||||
|
||||
// Permissable Action provided compute that before role
|
||||
if (action != null) {
|
||||
if (context.fPlayer.getRole() == Role.LEADER) return true;
|
||||
Access access = context.faction.getAccess(context.fPlayer, action);
|
||||
if (access == Access.DENY) {
|
||||
if (informIfNot) context.msg(TL.GENERIC_FPERM_NOPERMISSION, action.getName());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!FactionsPlugin.getInstance().perm.has(context.sender, permission.node, informIfNot)) return false;
|
||||
|
||||
// Permissable Action provided compute that before role
|
||||
if (action != null) {
|
||||
if (context.fPlayer.getRole() == Role.LEADER) return true;
|
||||
Access access = context.faction.getAccess(context.fPlayer, action);
|
||||
if (access == Access.DENY) {
|
||||
if (informIfNot) context.msg(TL.GENERIC_FPERM_NOPERMISSION, action.getName());
|
||||
return false;
|
||||
if (access != Access.ALLOW) {
|
||||
// They have undefined assert their role
|
||||
if (role != null && !context.fPlayer.getRole().isAtLeast(role)) {
|
||||
// They do not fullfill the role
|
||||
if (informIfNot) context.msg(TL.GENERIC_YOUMUSTBE, role.translation);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// They have been explicitly allowed
|
||||
return true;
|
||||
} else {
|
||||
if ((role != null && !context.fPlayer.getRole().isAtLeast(role)) && informIfNot) {
|
||||
context.msg(TL.GENERIC_YOUMUSTBE, role.translation);
|
||||
}
|
||||
return role == null || context.fPlayer.getRole().isAtLeast(role);
|
||||
}
|
||||
} else {
|
||||
if (playerOnly) {
|
||||
if (informIfNot) context.sender.sendMessage(TL.GENERIC_PLAYERONLY.toString());
|
||||
return false;
|
||||
}
|
||||
return context.sender.hasPermission(permission.node);
|
||||
}
|
||||
}
|
||||
|
||||
if (access != Access.ALLOW) {
|
||||
// They have undefined assert their role
|
||||
if (role != null && !context.fPlayer.getRole().isAtLeast(role)) {
|
||||
// They do not fullfill the role
|
||||
if (informIfNot) context.msg(TL.GENERIC_YOUMUSTBE, role.translation);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// They have been explicitly allowed
|
||||
return true;
|
||||
} else {
|
||||
if ((role != null && !context.fPlayer.getRole().isAtLeast(role)) && informIfNot) {
|
||||
context.msg(TL.GENERIC_YOUMUSTBE, role.translation);
|
||||
}
|
||||
return role == null || context.fPlayer.getRole().isAtLeast(role);
|
||||
}
|
||||
} else {
|
||||
if (playerOnly) {
|
||||
if (informIfNot) context.sender.sendMessage(TL.GENERIC_PLAYERONLY.toString());
|
||||
return false;
|
||||
}
|
||||
return context.sender.hasPermission(permission.node);
|
||||
}
|
||||
}
|
||||
public static class Builder {
|
||||
|
||||
public static class Builder {
|
||||
private Permission permission;
|
||||
|
||||
private Permission permission;
|
||||
private boolean playerOnly = false;
|
||||
private boolean memberOnly = false;
|
||||
|
||||
private boolean playerOnly = false;
|
||||
private boolean memberOnly = false;
|
||||
private Role role = null;
|
||||
private PermissableAction action;
|
||||
|
||||
private Role role = null;
|
||||
private PermissableAction action;
|
||||
private Class<? extends BrigadierProvider> brigadier;
|
||||
|
||||
private Class<? extends BrigadierProvider> brigadier;
|
||||
private boolean errorOnManyArgs = true;
|
||||
private boolean disableOnLock = true;
|
||||
|
||||
private boolean errorOnManyArgs = true;
|
||||
private boolean disableOnLock = true;
|
||||
public Builder(Permission permission) {
|
||||
this.permission = permission;
|
||||
}
|
||||
|
||||
public Builder(Permission permission) {
|
||||
this.permission = permission;
|
||||
}
|
||||
public Builder playerOnly() {
|
||||
playerOnly = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder playerOnly() {
|
||||
playerOnly = true;
|
||||
return this;
|
||||
}
|
||||
public Builder memberOnly() {
|
||||
playerOnly = true;
|
||||
memberOnly = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder memberOnly() {
|
||||
playerOnly = true;
|
||||
memberOnly = true;
|
||||
return this;
|
||||
}
|
||||
public Builder withRole(Role role) {
|
||||
this.role = role;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withRole(Role role) {
|
||||
this.role = role;
|
||||
return this;
|
||||
}
|
||||
public Builder withAction(PermissableAction action) {
|
||||
this.action = action;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withAction(PermissableAction action) {
|
||||
this.action = action;
|
||||
return this;
|
||||
}
|
||||
public Builder brigadier(Class<? extends BrigadierProvider> brigadier) {
|
||||
this.brigadier = brigadier;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder brigadier(Class<? extends BrigadierProvider> brigadier) {
|
||||
this.brigadier = brigadier;
|
||||
return this;
|
||||
}
|
||||
public CommandRequirements build() {
|
||||
CommandRequirements requirements = new CommandRequirements(permission, playerOnly, memberOnly, role, action, brigadier);
|
||||
requirements.errorOnManyArgs = errorOnManyArgs;
|
||||
requirements.disableOnLock = disableOnLock;
|
||||
return requirements;
|
||||
}
|
||||
|
||||
public CommandRequirements build() {
|
||||
CommandRequirements requirements = new CommandRequirements(permission, playerOnly, memberOnly, role, action, brigadier);
|
||||
requirements.errorOnManyArgs = errorOnManyArgs;
|
||||
requirements.disableOnLock = disableOnLock;
|
||||
return requirements;
|
||||
}
|
||||
public Builder noErrorOnManyArgs() {
|
||||
errorOnManyArgs = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder noErrorOnManyArgs() {
|
||||
errorOnManyArgs = false;
|
||||
return this;
|
||||
}
|
||||
public Builder noDisableOnLock() {
|
||||
disableOnLock = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder noDisableOnLock() {
|
||||
disableOnLock = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -36,307 +36,307 @@ import java.util.logging.Level;
|
||||
|
||||
public class FCmdRoot extends FCommand implements CommandExecutor {
|
||||
|
||||
public BrigadierManager brigadierManager;
|
||||
public BrigadierManager brigadierManager;
|
||||
|
||||
public CmdAdmin cmdAdmin = new CmdAdmin();
|
||||
public CmdAutoClaim cmdAutoClaim = new CmdAutoClaim();
|
||||
public CmdBoom cmdBoom = new CmdBoom();
|
||||
public CmdBypass cmdBypass = new CmdBypass();
|
||||
public CmdChat cmdChat = new CmdChat();
|
||||
public CmdChatSpy cmdChatSpy = new CmdChatSpy();
|
||||
public CmdClaim cmdClaim = new CmdClaim();
|
||||
public CmdConfig cmdConfig = new CmdConfig();
|
||||
public CmdCreate cmdCreate = new CmdCreate();
|
||||
public CmdDeinvite cmdDeinvite = new CmdDeinvite();
|
||||
public CmdDescription cmdDescription = new CmdDescription();
|
||||
public CmdDisband cmdDisband = new CmdDisband();
|
||||
public CmdFocus cmdFocus = new CmdFocus();
|
||||
public CmdGrace cmdGrace = new CmdGrace();
|
||||
public CmdHelp cmdHelp = new CmdHelp();
|
||||
public CmdHome cmdHome = new CmdHome();
|
||||
public CmdInvite cmdInvite = new CmdInvite();
|
||||
public CmdJoin cmdJoin = new CmdJoin();
|
||||
public CmdKick cmdKick = new CmdKick();
|
||||
public CmdLeave cmdLeave = new CmdLeave();
|
||||
public CmdList cmdList = new CmdList();
|
||||
public CmdLock cmdLock = new CmdLock();
|
||||
public CmdMap cmdMap = new CmdMap();
|
||||
public CmdMod cmdMod = new CmdMod();
|
||||
public CmdMoney cmdMoney = new CmdMoney();
|
||||
public CmdOpen cmdOpen = new CmdOpen();
|
||||
public CmdOwner cmdOwner = new CmdOwner();
|
||||
public CmdOwnerList cmdOwnerList = new CmdOwnerList();
|
||||
public CmdPeaceful cmdPeaceful = new CmdPeaceful();
|
||||
public CmdPermanent cmdPermanent = new CmdPermanent();
|
||||
public CmdPermanentPower cmdPermanentPower = new CmdPermanentPower();
|
||||
public CmdPowerBoost cmdPowerBoost = new CmdPowerBoost();
|
||||
public CmdPower cmdPower = new CmdPower();
|
||||
public CmdRelationAlly cmdRelationAlly = new CmdRelationAlly();
|
||||
public CmdRelationEnemy cmdRelationEnemy = new CmdRelationEnemy();
|
||||
public CmdRelationNeutral cmdRelationNeutral = new CmdRelationNeutral();
|
||||
public CmdRelationTruce cmdRelationTruce = new CmdRelationTruce();
|
||||
public CmdReload cmdReload = new CmdReload();
|
||||
public CmdSafeunclaimall cmdSafeunclaimall = new CmdSafeunclaimall();
|
||||
public CmdSaveAll cmdSaveAll = new CmdSaveAll();
|
||||
public CmdSethome cmdSethome = new CmdSethome();
|
||||
public CmdShow cmdShow = new CmdShow();
|
||||
public CmdStatus cmdStatus = new CmdStatus();
|
||||
public CmdStealth cmdStealth = new CmdStealth();
|
||||
public CmdStuck cmdStuck = new CmdStuck();
|
||||
public CmdTag cmdTag = new CmdTag();
|
||||
public CmdTitle cmdTitle = new CmdTitle();
|
||||
public CmdToggleAllianceChat cmdToggleAllianceChat = new CmdToggleAllianceChat();
|
||||
public CmdUnclaim cmdUnclaim = new CmdUnclaim();
|
||||
public CmdUnclaimall cmdUnclaimall = new CmdUnclaimall();
|
||||
public CmdVersion cmdVersion = new CmdVersion();
|
||||
public CmdWarunclaimall cmdWarunclaimall = new CmdWarunclaimall();
|
||||
public CmdSB cmdSB = new CmdSB();
|
||||
public CmdShowInvites cmdShowInvites = new CmdShowInvites();
|
||||
public CmdAnnounce cmdAnnounce = new CmdAnnounce();
|
||||
public CmdPaypalSet cmdPaypalSet = new CmdPaypalSet();
|
||||
public CmdPaypalSee cmdPaypalSee = new CmdPaypalSee();
|
||||
public CmdSeeChunk cmdSeeChunk = new CmdSeeChunk();
|
||||
public CmdConvert cmdConvert = new CmdConvert();
|
||||
public CmdFWarp cmdFWarp = new CmdFWarp();
|
||||
public CmdSetFWarp cmdSetFWarp = new CmdSetFWarp();
|
||||
public CmdDelFWarp cmdDelFWarp = new CmdDelFWarp();
|
||||
public CmdModifyPower cmdModifyPower = new CmdModifyPower();
|
||||
public CmdLogins cmdLogins = new CmdLogins();
|
||||
public CmdClaimLine cmdClaimLine = new CmdClaimLine();
|
||||
public CmdTop cmdTop = new CmdTop();
|
||||
public CmdAHome cmdAHome = new CmdAHome();
|
||||
public CmdPerm cmdPerm = new CmdPerm();
|
||||
public CmdPromote cmdPromote = new CmdPromote();
|
||||
public CmdDemote cmdDemote = new CmdDemote();
|
||||
public CmdSetDefaultRole cmdSetDefaultRole = new CmdSetDefaultRole();
|
||||
public CmdMapHeight cmdMapHeight = new CmdMapHeight();
|
||||
public CmdClaimAt cmdClaimAt = new CmdClaimAt();
|
||||
public CmdBan cmdban = new CmdBan();
|
||||
public CmdUnban cmdUnban = new CmdUnban();
|
||||
public CmdBanlist cmdbanlist = new CmdBanlist();
|
||||
public CmdRules cmdRules = new CmdRules();
|
||||
public CmdCheckpoint cmdCheckpoint = new CmdCheckpoint();
|
||||
public CmdTnt cmdTnt = new CmdTnt();
|
||||
public CmdNear cmdNear = new CmdNear();
|
||||
public CmdUpgrades cmdUpgrades = new CmdUpgrades();
|
||||
public CmdVault cmdVault = new CmdVault();
|
||||
public CmdGetVault cmdGetVault = new CmdGetVault();
|
||||
public CmdFly cmdFly = new CmdFly();
|
||||
public CmdColeader cmdColeader = new CmdColeader();
|
||||
public CmdBanner cmdBanner = new CmdBanner();
|
||||
public CmdTpBanner cmdTpBanner = new CmdTpBanner();
|
||||
public CmdKillHolograms cmdKillHolograms = new CmdKillHolograms();
|
||||
public CmdInspect cmdInspect = new CmdInspect();
|
||||
public CmdCoords cmdCoords = new CmdCoords();
|
||||
public CmdShowClaims cmdShowClaims = new CmdShowClaims();
|
||||
public CmdLowPower cmdLowPower = new CmdLowPower();
|
||||
public CmdTntFill cmdTntFill = new CmdTntFill();
|
||||
public CmdChest cmdChest = new CmdChest();
|
||||
public CmdSetBanner cmdSetBanner = new CmdSetBanner();
|
||||
public CmdAlts cmdAlts = new CmdAlts();
|
||||
public CmdCorner cmdCorner = new CmdCorner();
|
||||
public CmdInventorySee cmdInventorySee = new CmdInventorySee();
|
||||
public CmdFGlobal cmdFGlobal = new CmdFGlobal();
|
||||
public CmdViewChest cmdViewChest = new CmdViewChest();
|
||||
public CmdPoints cmdPoints = new CmdPoints();
|
||||
public CmdLogout cmdLogout = new CmdLogout();
|
||||
public CmdShop cmdShop = new CmdShop();
|
||||
public CmdMissions cmdMissions = new CmdMissions();
|
||||
public CmdStrikes cmdStrikes = new CmdStrikes();
|
||||
public CmdCheck cmdCheck = new CmdCheck();
|
||||
public CmdWeeWoo cmdWeeWoo = new CmdWeeWoo();
|
||||
public CmdConvertConfig cmdConvertConfig = new CmdConvertConfig();
|
||||
public CmdAdmin cmdAdmin = new CmdAdmin();
|
||||
public CmdAutoClaim cmdAutoClaim = new CmdAutoClaim();
|
||||
public CmdBoom cmdBoom = new CmdBoom();
|
||||
public CmdBypass cmdBypass = new CmdBypass();
|
||||
public CmdChat cmdChat = new CmdChat();
|
||||
public CmdChatSpy cmdChatSpy = new CmdChatSpy();
|
||||
public CmdClaim cmdClaim = new CmdClaim();
|
||||
public CmdConfig cmdConfig = new CmdConfig();
|
||||
public CmdCreate cmdCreate = new CmdCreate();
|
||||
public CmdDeinvite cmdDeinvite = new CmdDeinvite();
|
||||
public CmdDescription cmdDescription = new CmdDescription();
|
||||
public CmdDisband cmdDisband = new CmdDisband();
|
||||
public CmdFocus cmdFocus = new CmdFocus();
|
||||
public CmdGrace cmdGrace = new CmdGrace();
|
||||
public CmdHelp cmdHelp = new CmdHelp();
|
||||
public CmdHome cmdHome = new CmdHome();
|
||||
public CmdInvite cmdInvite = new CmdInvite();
|
||||
public CmdJoin cmdJoin = new CmdJoin();
|
||||
public CmdKick cmdKick = new CmdKick();
|
||||
public CmdLeave cmdLeave = new CmdLeave();
|
||||
public CmdList cmdList = new CmdList();
|
||||
public CmdLock cmdLock = new CmdLock();
|
||||
public CmdMap cmdMap = new CmdMap();
|
||||
public CmdMod cmdMod = new CmdMod();
|
||||
public CmdMoney cmdMoney = new CmdMoney();
|
||||
public CmdOpen cmdOpen = new CmdOpen();
|
||||
public CmdOwner cmdOwner = new CmdOwner();
|
||||
public CmdOwnerList cmdOwnerList = new CmdOwnerList();
|
||||
public CmdPeaceful cmdPeaceful = new CmdPeaceful();
|
||||
public CmdPermanent cmdPermanent = new CmdPermanent();
|
||||
public CmdPermanentPower cmdPermanentPower = new CmdPermanentPower();
|
||||
public CmdPowerBoost cmdPowerBoost = new CmdPowerBoost();
|
||||
public CmdPower cmdPower = new CmdPower();
|
||||
public CmdRelationAlly cmdRelationAlly = new CmdRelationAlly();
|
||||
public CmdRelationEnemy cmdRelationEnemy = new CmdRelationEnemy();
|
||||
public CmdRelationNeutral cmdRelationNeutral = new CmdRelationNeutral();
|
||||
public CmdRelationTruce cmdRelationTruce = new CmdRelationTruce();
|
||||
public CmdReload cmdReload = new CmdReload();
|
||||
public CmdSafeunclaimall cmdSafeunclaimall = new CmdSafeunclaimall();
|
||||
public CmdSaveAll cmdSaveAll = new CmdSaveAll();
|
||||
public CmdSethome cmdSethome = new CmdSethome();
|
||||
public CmdShow cmdShow = new CmdShow();
|
||||
public CmdStatus cmdStatus = new CmdStatus();
|
||||
public CmdStealth cmdStealth = new CmdStealth();
|
||||
public CmdStuck cmdStuck = new CmdStuck();
|
||||
public CmdTag cmdTag = new CmdTag();
|
||||
public CmdTitle cmdTitle = new CmdTitle();
|
||||
public CmdToggleAllianceChat cmdToggleAllianceChat = new CmdToggleAllianceChat();
|
||||
public CmdUnclaim cmdUnclaim = new CmdUnclaim();
|
||||
public CmdUnclaimall cmdUnclaimall = new CmdUnclaimall();
|
||||
public CmdVersion cmdVersion = new CmdVersion();
|
||||
public CmdWarunclaimall cmdWarunclaimall = new CmdWarunclaimall();
|
||||
public CmdSB cmdSB = new CmdSB();
|
||||
public CmdShowInvites cmdShowInvites = new CmdShowInvites();
|
||||
public CmdAnnounce cmdAnnounce = new CmdAnnounce();
|
||||
public CmdPaypalSet cmdPaypalSet = new CmdPaypalSet();
|
||||
public CmdPaypalSee cmdPaypalSee = new CmdPaypalSee();
|
||||
public CmdSeeChunk cmdSeeChunk = new CmdSeeChunk();
|
||||
public CmdConvert cmdConvert = new CmdConvert();
|
||||
public CmdFWarp cmdFWarp = new CmdFWarp();
|
||||
public CmdSetFWarp cmdSetFWarp = new CmdSetFWarp();
|
||||
public CmdDelFWarp cmdDelFWarp = new CmdDelFWarp();
|
||||
public CmdModifyPower cmdModifyPower = new CmdModifyPower();
|
||||
public CmdLogins cmdLogins = new CmdLogins();
|
||||
public CmdClaimLine cmdClaimLine = new CmdClaimLine();
|
||||
public CmdTop cmdTop = new CmdTop();
|
||||
public CmdAHome cmdAHome = new CmdAHome();
|
||||
public CmdPerm cmdPerm = new CmdPerm();
|
||||
public CmdPromote cmdPromote = new CmdPromote();
|
||||
public CmdDemote cmdDemote = new CmdDemote();
|
||||
public CmdSetDefaultRole cmdSetDefaultRole = new CmdSetDefaultRole();
|
||||
public CmdMapHeight cmdMapHeight = new CmdMapHeight();
|
||||
public CmdClaimAt cmdClaimAt = new CmdClaimAt();
|
||||
public CmdBan cmdban = new CmdBan();
|
||||
public CmdUnban cmdUnban = new CmdUnban();
|
||||
public CmdBanlist cmdbanlist = new CmdBanlist();
|
||||
public CmdRules cmdRules = new CmdRules();
|
||||
public CmdCheckpoint cmdCheckpoint = new CmdCheckpoint();
|
||||
public CmdTnt cmdTnt = new CmdTnt();
|
||||
public CmdNear cmdNear = new CmdNear();
|
||||
public CmdUpgrades cmdUpgrades = new CmdUpgrades();
|
||||
public CmdVault cmdVault = new CmdVault();
|
||||
public CmdGetVault cmdGetVault = new CmdGetVault();
|
||||
public CmdFly cmdFly = new CmdFly();
|
||||
public CmdColeader cmdColeader = new CmdColeader();
|
||||
public CmdBanner cmdBanner = new CmdBanner();
|
||||
public CmdTpBanner cmdTpBanner = new CmdTpBanner();
|
||||
public CmdKillHolograms cmdKillHolograms = new CmdKillHolograms();
|
||||
public CmdInspect cmdInspect = new CmdInspect();
|
||||
public CmdCoords cmdCoords = new CmdCoords();
|
||||
public CmdShowClaims cmdShowClaims = new CmdShowClaims();
|
||||
public CmdLowPower cmdLowPower = new CmdLowPower();
|
||||
public CmdTntFill cmdTntFill = new CmdTntFill();
|
||||
public CmdChest cmdChest = new CmdChest();
|
||||
public CmdSetBanner cmdSetBanner = new CmdSetBanner();
|
||||
public CmdAlts cmdAlts = new CmdAlts();
|
||||
public CmdCorner cmdCorner = new CmdCorner();
|
||||
public CmdInventorySee cmdInventorySee = new CmdInventorySee();
|
||||
public CmdFGlobal cmdFGlobal = new CmdFGlobal();
|
||||
public CmdViewChest cmdViewChest = new CmdViewChest();
|
||||
public CmdPoints cmdPoints = new CmdPoints();
|
||||
public CmdLogout cmdLogout = new CmdLogout();
|
||||
public CmdShop cmdShop = new CmdShop();
|
||||
public CmdMissions cmdMissions = new CmdMissions();
|
||||
public CmdStrikes cmdStrikes = new CmdStrikes();
|
||||
public CmdCheck cmdCheck = new CmdCheck();
|
||||
public CmdWeeWoo cmdWeeWoo = new CmdWeeWoo();
|
||||
public CmdConvertConfig cmdConvertConfig = new CmdConvertConfig();
|
||||
|
||||
public FCmdRoot() {
|
||||
super();
|
||||
public FCmdRoot() {
|
||||
super();
|
||||
|
||||
if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager();
|
||||
if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager();
|
||||
|
||||
|
||||
this.aliases.addAll(Conf.baseCommandAliases);
|
||||
this.aliases.removeAll(Collections.<String>singletonList(null));
|
||||
this.aliases.addAll(Conf.baseCommandAliases);
|
||||
this.aliases.removeAll(Collections.<String>singletonList(null));
|
||||
|
||||
this.setHelpShort("The faction base command");
|
||||
this.helpLong.add(FactionsPlugin.getInstance().txt.parseTags("<i>This command contains all faction stuff."));
|
||||
this.setHelpShort("The faction base command");
|
||||
this.helpLong.add(FactionsPlugin.getInstance().txt.parseTags("<i>This command contains all faction stuff."));
|
||||
|
||||
if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager();
|
||||
if (CommodoreProvider.isSupported()) brigadierManager = new BrigadierManager();
|
||||
|
||||
this.addSubCommand(this.cmdAdmin);
|
||||
this.addSubCommand(this.cmdAutoClaim);
|
||||
this.addSubCommand(this.cmdBoom);
|
||||
this.addSubCommand(this.cmdBypass);
|
||||
this.addSubCommand(this.cmdChat);
|
||||
this.addSubCommand(this.cmdToggleAllianceChat);
|
||||
this.addSubCommand(this.cmdChatSpy);
|
||||
this.addSubCommand(this.cmdClaim);
|
||||
this.addSubCommand(this.cmdConfig);
|
||||
this.addSubCommand(this.cmdCreate);
|
||||
this.addSubCommand(this.cmdDeinvite);
|
||||
this.addSubCommand(this.cmdDescription);
|
||||
this.addSubCommand(this.cmdDisband);
|
||||
this.addSubCommand(this.cmdHelp);
|
||||
this.addSubCommand(this.cmdHome);
|
||||
this.addSubCommand(this.cmdInvite);
|
||||
this.addSubCommand(this.cmdJoin);
|
||||
this.addSubCommand(this.cmdKick);
|
||||
this.addSubCommand(this.cmdLeave);
|
||||
this.addSubCommand(this.cmdList);
|
||||
this.addSubCommand(this.cmdLock);
|
||||
this.addSubCommand(this.cmdMap);
|
||||
this.addSubCommand(this.cmdMod);
|
||||
this.addSubCommand(this.cmdMoney);
|
||||
this.addSubCommand(this.cmdOpen);
|
||||
this.addSubCommand(this.cmdOwner);
|
||||
this.addSubCommand(this.cmdOwnerList);
|
||||
this.addSubCommand(this.cmdPeaceful);
|
||||
this.addSubCommand(this.cmdPermanent);
|
||||
this.addSubCommand(this.cmdPermanentPower);
|
||||
this.addSubCommand(this.cmdPower);
|
||||
this.addSubCommand(this.cmdPowerBoost);
|
||||
this.addSubCommand(this.cmdRelationAlly);
|
||||
this.addSubCommand(this.cmdRelationEnemy);
|
||||
this.addSubCommand(this.cmdRelationNeutral);
|
||||
this.addSubCommand(this.cmdRelationTruce);
|
||||
this.addSubCommand(this.cmdReload);
|
||||
this.addSubCommand(this.cmdSafeunclaimall);
|
||||
this.addSubCommand(this.cmdSaveAll);
|
||||
this.addSubCommand(this.cmdSethome);
|
||||
this.addSubCommand(this.cmdShow);
|
||||
this.addSubCommand(this.cmdStatus);
|
||||
this.addSubCommand(this.cmdStealth);
|
||||
this.addSubCommand(this.cmdStuck);
|
||||
this.addSubCommand(this.cmdLogout);
|
||||
this.addSubCommand(this.cmdTag);
|
||||
this.addSubCommand(this.cmdTitle);
|
||||
this.addSubCommand(this.cmdUnclaim);
|
||||
this.addSubCommand(this.cmdUnclaimall);
|
||||
this.addSubCommand(this.cmdVersion);
|
||||
this.addSubCommand(this.cmdWarunclaimall);
|
||||
this.addSubCommand(this.cmdSB);
|
||||
this.addSubCommand(this.cmdShowInvites);
|
||||
this.addSubCommand(this.cmdAnnounce);
|
||||
this.addSubCommand(this.cmdSeeChunk);
|
||||
this.addSubCommand(this.cmdConvert);
|
||||
this.addSubCommand(this.cmdFWarp);
|
||||
this.addSubCommand(this.cmdSetFWarp);
|
||||
this.addSubCommand(this.cmdDelFWarp);
|
||||
this.addSubCommand(this.cmdModifyPower);
|
||||
this.addSubCommand(this.cmdLogins);
|
||||
this.addSubCommand(this.cmdClaimLine);
|
||||
this.addSubCommand(this.cmdAHome);
|
||||
this.addSubCommand(this.cmdPerm);
|
||||
this.addSubCommand(this.cmdPromote);
|
||||
this.addSubCommand(this.cmdDemote);
|
||||
this.addSubCommand(this.cmdSetDefaultRole);
|
||||
this.addSubCommand(this.cmdMapHeight);
|
||||
this.addSubCommand(this.cmdClaimAt);
|
||||
this.addSubCommand(this.cmdban);
|
||||
this.addSubCommand(this.cmdUnban);
|
||||
this.addSubCommand(this.cmdbanlist);
|
||||
this.addSubCommand(this.cmdRules);
|
||||
this.addSubCommand(this.cmdCheckpoint);
|
||||
this.addSubCommand(this.cmdTnt);
|
||||
this.addSubCommand(this.cmdNear);
|
||||
this.addSubCommand(this.cmdUpgrades);
|
||||
this.addSubCommand(this.cmdVault);
|
||||
this.addSubCommand(this.cmdGetVault);
|
||||
this.addSubCommand(this.cmdColeader);
|
||||
this.addSubCommand(this.cmdBanner);
|
||||
this.addSubCommand(this.cmdTpBanner);
|
||||
this.addSubCommand(this.cmdKillHolograms);
|
||||
this.addSubCommand(this.cmdCoords);
|
||||
this.addSubCommand(this.cmdShowClaims);
|
||||
this.addSubCommand(this.cmdLowPower);
|
||||
this.addSubCommand(this.cmdTntFill);
|
||||
this.addSubCommand(this.cmdChest);
|
||||
this.addSubCommand(this.cmdSetBanner);
|
||||
this.addSubCommand(this.cmdCorner);
|
||||
this.addSubCommand(this.cmdStrikes);
|
||||
this.addSubCommand(this.cmdFGlobal);
|
||||
this.addSubCommand(this.cmdViewChest);
|
||||
this.addSubCommand(this.cmdConvertConfig);
|
||||
this.addSubCommand(this.cmdAdmin);
|
||||
this.addSubCommand(this.cmdAutoClaim);
|
||||
this.addSubCommand(this.cmdBoom);
|
||||
this.addSubCommand(this.cmdBypass);
|
||||
this.addSubCommand(this.cmdChat);
|
||||
this.addSubCommand(this.cmdToggleAllianceChat);
|
||||
this.addSubCommand(this.cmdChatSpy);
|
||||
this.addSubCommand(this.cmdClaim);
|
||||
this.addSubCommand(this.cmdConfig);
|
||||
this.addSubCommand(this.cmdCreate);
|
||||
this.addSubCommand(this.cmdDeinvite);
|
||||
this.addSubCommand(this.cmdDescription);
|
||||
this.addSubCommand(this.cmdDisband);
|
||||
this.addSubCommand(this.cmdHelp);
|
||||
this.addSubCommand(this.cmdHome);
|
||||
this.addSubCommand(this.cmdInvite);
|
||||
this.addSubCommand(this.cmdJoin);
|
||||
this.addSubCommand(this.cmdKick);
|
||||
this.addSubCommand(this.cmdLeave);
|
||||
this.addSubCommand(this.cmdList);
|
||||
this.addSubCommand(this.cmdLock);
|
||||
this.addSubCommand(this.cmdMap);
|
||||
this.addSubCommand(this.cmdMod);
|
||||
this.addSubCommand(this.cmdMoney);
|
||||
this.addSubCommand(this.cmdOpen);
|
||||
this.addSubCommand(this.cmdOwner);
|
||||
this.addSubCommand(this.cmdOwnerList);
|
||||
this.addSubCommand(this.cmdPeaceful);
|
||||
this.addSubCommand(this.cmdPermanent);
|
||||
this.addSubCommand(this.cmdPermanentPower);
|
||||
this.addSubCommand(this.cmdPower);
|
||||
this.addSubCommand(this.cmdPowerBoost);
|
||||
this.addSubCommand(this.cmdRelationAlly);
|
||||
this.addSubCommand(this.cmdRelationEnemy);
|
||||
this.addSubCommand(this.cmdRelationNeutral);
|
||||
this.addSubCommand(this.cmdRelationTruce);
|
||||
this.addSubCommand(this.cmdReload);
|
||||
this.addSubCommand(this.cmdSafeunclaimall);
|
||||
this.addSubCommand(this.cmdSaveAll);
|
||||
this.addSubCommand(this.cmdSethome);
|
||||
this.addSubCommand(this.cmdShow);
|
||||
this.addSubCommand(this.cmdStatus);
|
||||
this.addSubCommand(this.cmdStealth);
|
||||
this.addSubCommand(this.cmdStuck);
|
||||
this.addSubCommand(this.cmdLogout);
|
||||
this.addSubCommand(this.cmdTag);
|
||||
this.addSubCommand(this.cmdTitle);
|
||||
this.addSubCommand(this.cmdUnclaim);
|
||||
this.addSubCommand(this.cmdUnclaimall);
|
||||
this.addSubCommand(this.cmdVersion);
|
||||
this.addSubCommand(this.cmdWarunclaimall);
|
||||
this.addSubCommand(this.cmdSB);
|
||||
this.addSubCommand(this.cmdShowInvites);
|
||||
this.addSubCommand(this.cmdAnnounce);
|
||||
this.addSubCommand(this.cmdSeeChunk);
|
||||
this.addSubCommand(this.cmdConvert);
|
||||
this.addSubCommand(this.cmdFWarp);
|
||||
this.addSubCommand(this.cmdSetFWarp);
|
||||
this.addSubCommand(this.cmdDelFWarp);
|
||||
this.addSubCommand(this.cmdModifyPower);
|
||||
this.addSubCommand(this.cmdLogins);
|
||||
this.addSubCommand(this.cmdClaimLine);
|
||||
this.addSubCommand(this.cmdAHome);
|
||||
this.addSubCommand(this.cmdPerm);
|
||||
this.addSubCommand(this.cmdPromote);
|
||||
this.addSubCommand(this.cmdDemote);
|
||||
this.addSubCommand(this.cmdSetDefaultRole);
|
||||
this.addSubCommand(this.cmdMapHeight);
|
||||
this.addSubCommand(this.cmdClaimAt);
|
||||
this.addSubCommand(this.cmdban);
|
||||
this.addSubCommand(this.cmdUnban);
|
||||
this.addSubCommand(this.cmdbanlist);
|
||||
this.addSubCommand(this.cmdRules);
|
||||
this.addSubCommand(this.cmdCheckpoint);
|
||||
this.addSubCommand(this.cmdTnt);
|
||||
this.addSubCommand(this.cmdNear);
|
||||
this.addSubCommand(this.cmdUpgrades);
|
||||
this.addSubCommand(this.cmdVault);
|
||||
this.addSubCommand(this.cmdGetVault);
|
||||
this.addSubCommand(this.cmdColeader);
|
||||
this.addSubCommand(this.cmdBanner);
|
||||
this.addSubCommand(this.cmdTpBanner);
|
||||
this.addSubCommand(this.cmdKillHolograms);
|
||||
this.addSubCommand(this.cmdCoords);
|
||||
this.addSubCommand(this.cmdShowClaims);
|
||||
this.addSubCommand(this.cmdLowPower);
|
||||
this.addSubCommand(this.cmdTntFill);
|
||||
this.addSubCommand(this.cmdChest);
|
||||
this.addSubCommand(this.cmdSetBanner);
|
||||
this.addSubCommand(this.cmdCorner);
|
||||
this.addSubCommand(this.cmdStrikes);
|
||||
this.addSubCommand(this.cmdFGlobal);
|
||||
this.addSubCommand(this.cmdViewChest);
|
||||
this.addSubCommand(this.cmdConvertConfig);
|
||||
|
||||
if (Conf.useCheckSystem) {
|
||||
this.addSubCommand(this.cmdCheck);
|
||||
this.addSubCommand(this.cmdWeeWoo);
|
||||
}
|
||||
if (Conf.useCheckSystem) {
|
||||
this.addSubCommand(this.cmdCheck);
|
||||
this.addSubCommand(this.cmdWeeWoo);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("Missions-Enabled")) {
|
||||
this.addSubCommand(this.cmdMissions);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("Missions-Enabled")) {
|
||||
this.addSubCommand(this.cmdMissions);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("F-Shop.Enabled")) {
|
||||
this.addSubCommand(this.cmdShop);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("F-Shop.Enabled")) {
|
||||
this.addSubCommand(this.cmdShop);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) {
|
||||
this.addSubCommand(this.cmdInventorySee);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) {
|
||||
this.addSubCommand(this.cmdInventorySee);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-points.Enabled")) {
|
||||
this.addSubCommand(this.cmdPoints);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-points.Enabled")) {
|
||||
this.addSubCommand(this.cmdPoints);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-alts.Enabled")) {
|
||||
this.addSubCommand(this.cmdAlts);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-alts.Enabled")) {
|
||||
this.addSubCommand(this.cmdAlts);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) {
|
||||
this.addSubCommand(this.cmdGrace);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("f-grace.Enabled")) {
|
||||
this.addSubCommand(this.cmdGrace);
|
||||
}
|
||||
|
||||
|
||||
if (Bukkit.getServer().getPluginManager().getPlugin("CoreProtect") != null) {
|
||||
FactionsPlugin.getInstance().log("Found CoreProtect, enabling Inspect");
|
||||
this.addSubCommand(this.cmdInspect);
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log("CoreProtect not found, disabling Inspect");
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) {
|
||||
addSubCommand(this.cmdFocus);
|
||||
}
|
||||
if (Bukkit.getServer().getPluginManager().getPlugin("CoreProtect") != null) {
|
||||
FactionsPlugin.getInstance().log("Found CoreProtect, enabling Inspect");
|
||||
this.addSubCommand(this.cmdInspect);
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log("CoreProtect not found, disabling Inspect");
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("ffocus.Enabled")) {
|
||||
addSubCommand(this.cmdFocus);
|
||||
}
|
||||
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
this.addSubCommand(this.cmdFly);
|
||||
}
|
||||
if (Bukkit.getServer().getPluginManager().getPlugin("FactionsTop") != null || Bukkit.getServer().getPluginManager().getPlugin("SavageFTOP") != null || Bukkit.getServer().getPluginManager().getPlugin("SaberFTOP") != null) {
|
||||
FactionsPlugin.getInstance().log(Level.INFO, "Found FactionsTop plugin. Disabling our own /f top command.");
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log(Level.INFO, "Enabling FactionsTop command, this is a very basic /f top please get a dedicated /f top resource if you want land calculation etc.");
|
||||
this.addSubCommand(this.cmdTop);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
this.addSubCommand(this.cmdPaypalSet);
|
||||
this.addSubCommand(this.cmdPaypalSee);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
this.addSubCommand(this.cmdFly);
|
||||
}
|
||||
if (Bukkit.getServer().getPluginManager().getPlugin("FactionsTop") != null || Bukkit.getServer().getPluginManager().getPlugin("SavageFTOP") != null || Bukkit.getServer().getPluginManager().getPlugin("SaberFTOP") != null) {
|
||||
FactionsPlugin.getInstance().log(Level.INFO, "Found FactionsTop plugin. Disabling our own /f top command.");
|
||||
} else {
|
||||
FactionsPlugin.getInstance().log(Level.INFO, "Enabling FactionsTop command, this is a very basic /f top please get a dedicated /f top resource if you want land calculation etc.");
|
||||
this.addSubCommand(this.cmdTop);
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("fpaypal.Enabled")) {
|
||||
this.addSubCommand(this.cmdPaypalSet);
|
||||
this.addSubCommand(this.cmdPaypalSee);
|
||||
}
|
||||
|
||||
if (CommodoreProvider.isSupported()) brigadierManager.build();
|
||||
}
|
||||
if (CommodoreProvider.isSupported()) brigadierManager.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.commandChain.add(this);
|
||||
this.cmdHelp.execute(context);
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
context.commandChain.add(this);
|
||||
this.cmdHelp.execute(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
this.execute(new CommandContext(sender, new ArrayList<>(Arrays.asList(args)), label));
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
this.execute(new CommandContext(sender, new ArrayList<>(Arrays.asList(args)), label));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
super.addSubCommand(subCommand);
|
||||
// People were getting NPE's as somehow CommodoreProvider#isSupported returned true on legacy versions.
|
||||
if (CommodoreProvider.isSupported()) {
|
||||
brigadierManager.addSubCommand(subCommand);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
super.addSubCommand(subCommand);
|
||||
// People were getting NPE's as somehow CommodoreProvider#isSupported returned true on legacy versions.
|
||||
if (CommodoreProvider.isSupported()) {
|
||||
brigadierManager.addSubCommand(subCommand);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.GENERIC_PLACEHOLDER;
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.GENERIC_PLACEHOLDER;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,232 +17,232 @@ import java.util.*;
|
||||
|
||||
public abstract class FCommand {
|
||||
|
||||
public SimpleDateFormat sdf = new SimpleDateFormat(TL.DATE_FORMAT.toString());
|
||||
public SimpleDateFormat sdf = new SimpleDateFormat(TL.DATE_FORMAT.toString());
|
||||
|
||||
// Command Aliases
|
||||
public List<String> aliases;
|
||||
// Command Aliases
|
||||
public List<String> aliases;
|
||||
|
||||
// Information on the args
|
||||
public List<String> requiredArgs;
|
||||
public LinkedHashMap<String, String> optionalArgs;
|
||||
// Information on the args
|
||||
public List<String> requiredArgs;
|
||||
public LinkedHashMap<String, String> optionalArgs;
|
||||
|
||||
// Requirements to execute this command
|
||||
public CommandRequirements requirements;
|
||||
/*
|
||||
Subcommands
|
||||
*/
|
||||
public List<FCommand> subCommands;
|
||||
/*
|
||||
Help
|
||||
*/
|
||||
public List<String> helpLong;
|
||||
public CommandVisibility visibility;
|
||||
private String helpShort;
|
||||
// Requirements to execute this command
|
||||
public CommandRequirements requirements;
|
||||
/*
|
||||
Subcommands
|
||||
*/
|
||||
public List<FCommand> subCommands;
|
||||
/*
|
||||
Help
|
||||
*/
|
||||
public List<String> helpLong;
|
||||
public CommandVisibility visibility;
|
||||
private String helpShort;
|
||||
|
||||
public FCommand() {
|
||||
public FCommand() {
|
||||
|
||||
requirements = new CommandRequirements.Builder(null).build();
|
||||
requirements = new CommandRequirements.Builder(null).build();
|
||||
|
||||
this.subCommands = new ArrayList<>();
|
||||
this.aliases = new ArrayList<>();
|
||||
this.subCommands = new ArrayList<>();
|
||||
this.aliases = new ArrayList<>();
|
||||
|
||||
this.requiredArgs = new ArrayList<>();
|
||||
this.optionalArgs = new LinkedHashMap<>();
|
||||
this.requiredArgs = new ArrayList<>();
|
||||
this.optionalArgs = new LinkedHashMap<>();
|
||||
|
||||
this.helpShort = null;
|
||||
this.helpLong = new ArrayList<>();
|
||||
this.visibility = CommandVisibility.VISIBLE;
|
||||
}
|
||||
this.helpShort = null;
|
||||
this.helpLong = new ArrayList<>();
|
||||
this.visibility = CommandVisibility.VISIBLE;
|
||||
}
|
||||
|
||||
public abstract void perform(CommandContext context);
|
||||
public abstract void perform(CommandContext context);
|
||||
|
||||
public void execute(CommandContext context) {
|
||||
// Is there a matching sub command?
|
||||
if (context.args.size() > 0) {
|
||||
for (FCommand subCommand : this.subCommands) {
|
||||
if (subCommand.aliases.contains(context.args.get(0).toLowerCase())) {
|
||||
context.args.remove(0);
|
||||
context.commandChain.add(this);
|
||||
subCommand.execute(context);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public void execute(CommandContext context) {
|
||||
// Is there a matching sub command?
|
||||
if (context.args.size() > 0) {
|
||||
for (FCommand subCommand : this.subCommands) {
|
||||
if (subCommand.aliases.contains(context.args.get(0).toLowerCase())) {
|
||||
context.args.remove(0);
|
||||
context.commandChain.add(this);
|
||||
subCommand.execute(context);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!validCall(context)) {
|
||||
return;
|
||||
}
|
||||
if (!validCall(context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.isEnabled(context)) {
|
||||
return;
|
||||
}
|
||||
if (!this.isEnabled(context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
perform(context);
|
||||
}
|
||||
perform(context);
|
||||
}
|
||||
|
||||
public boolean validCall(CommandContext context) {
|
||||
return requirements.computeRequirements(context, true) && validArgs(context);
|
||||
}
|
||||
public boolean validCall(CommandContext context) {
|
||||
return requirements.computeRequirements(context, true) && validArgs(context);
|
||||
}
|
||||
|
||||
public boolean isEnabled(CommandContext context) {
|
||||
if (FactionsPlugin.getInstance().getLocked() && requirements.disableOnLock) {
|
||||
context.msg("<b>Factions was locked by an admin. Please try again later.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public boolean isEnabled(CommandContext context) {
|
||||
if (FactionsPlugin.getInstance().getLocked() && requirements.disableOnLock) {
|
||||
context.msg("<b>Factions was locked by an admin. Please try again later.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean validArgs(CommandContext context) {
|
||||
if (context.args.size() < this.requiredArgs.size()) {
|
||||
if (context.sender != null) {
|
||||
context.msg(TL.GENERIC_ARGS_TOOFEW);
|
||||
context.sender.sendMessage(this.getUseageTemplate(context));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean validArgs(CommandContext context) {
|
||||
if (context.args.size() < this.requiredArgs.size()) {
|
||||
if (context.sender != null) {
|
||||
context.msg(TL.GENERIC_ARGS_TOOFEW);
|
||||
context.sender.sendMessage(this.getUseageTemplate(context));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (context.args.size() > this.requiredArgs.size() + this.optionalArgs.size() && this.requirements.errorOnManyArgs) {
|
||||
if (context.sender != null) {
|
||||
// Get the to many string slice
|
||||
List<String> theToMany = context.args.subList(this.requiredArgs.size() + this.optionalArgs.size(), context.args.size());
|
||||
context.msg(TL.GENERIC_ARGS_TOOMANY, TextUtil.implode(theToMany, " "));
|
||||
context.sender.sendMessage(this.getUseageTemplate(context));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (context.args.size() > this.requiredArgs.size() + this.optionalArgs.size() && this.requirements.errorOnManyArgs) {
|
||||
if (context.sender != null) {
|
||||
// Get the to many string slice
|
||||
List<String> theToMany = context.args.subList(this.requiredArgs.size() + this.optionalArgs.size(), context.args.size());
|
||||
context.msg(TL.GENERIC_ARGS_TOOMANY, TextUtil.implode(theToMany, " "));
|
||||
context.sender.sendMessage(this.getUseageTemplate(context));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
this.subCommands.add(subCommand);
|
||||
}
|
||||
public void addSubCommand(FCommand subCommand) {
|
||||
this.subCommands.add(subCommand);
|
||||
}
|
||||
|
||||
public String getHelpShort() {
|
||||
if (this.helpShort == null) {
|
||||
return getUsageTranslation().toString();
|
||||
}
|
||||
public String getHelpShort() {
|
||||
if (this.helpShort == null) {
|
||||
return getUsageTranslation().toString();
|
||||
}
|
||||
|
||||
return this.helpShort;
|
||||
}
|
||||
return this.helpShort;
|
||||
}
|
||||
|
||||
public void setHelpShort(String val) {
|
||||
this.helpShort = val;
|
||||
}
|
||||
public void setHelpShort(String val) {
|
||||
this.helpShort = val;
|
||||
}
|
||||
|
||||
public abstract TL getUsageTranslation();
|
||||
public abstract TL getUsageTranslation();
|
||||
|
||||
|
||||
/*
|
||||
Common Logic
|
||||
*/
|
||||
public List<String> getToolTips(FPlayer player) {
|
||||
List<String> lines = new ArrayList<>();
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.show")) {
|
||||
lines.add(ChatColor.translateAlternateColorCodes('&', replaceFPlayerTags(s, player)));
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
/*
|
||||
Common Logic
|
||||
*/
|
||||
public List<String> getToolTips(FPlayer player) {
|
||||
List<String> lines = new ArrayList<>();
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.show")) {
|
||||
lines.add(ChatColor.translateAlternateColorCodes('&', replaceFPlayerTags(s, player)));
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
|
||||
public List<String> getToolTips(Faction faction) {
|
||||
List<String> lines = new ArrayList<>();
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.list")) {
|
||||
lines.add(ChatColor.translateAlternateColorCodes('&', replaceFactionTags(s, faction)));
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
public List<String> getToolTips(Faction faction) {
|
||||
List<String> lines = new ArrayList<>();
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("tooltips.list")) {
|
||||
lines.add(ChatColor.translateAlternateColorCodes('&', replaceFactionTags(s, faction)));
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
|
||||
public String replaceFPlayerTags(String s, FPlayer player) {
|
||||
if (s.contains("{balance}")) {
|
||||
String balance = Econ.isSetup() ? Econ.getFriendlyBalance(player) : "no balance";
|
||||
s = s.replace("{balance}", balance);
|
||||
}
|
||||
if (s.contains("{lastSeen}")) {
|
||||
String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - player.getLastLoginTime(), true, true) + " ago";
|
||||
String lastSeen = player.isOnline() ? ChatColor.GREEN + "Online" : (System.currentTimeMillis() - player.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized);
|
||||
s = s.replace("{lastSeen}", lastSeen);
|
||||
}
|
||||
if (s.contains("{power}")) {
|
||||
String power = player.getPowerRounded() + "/" + player.getPowerMaxRounded();
|
||||
s = s.replace("{power}", power);
|
||||
}
|
||||
if (s.contains("{group}")) {
|
||||
String group = FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(player.getId())));
|
||||
s = s.replace("{group}", group);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
public String replaceFPlayerTags(String s, FPlayer player) {
|
||||
if (s.contains("{balance}")) {
|
||||
String balance = Econ.isSetup() ? Econ.getFriendlyBalance(player) : "no balance";
|
||||
s = s.replace("{balance}", balance);
|
||||
}
|
||||
if (s.contains("{lastSeen}")) {
|
||||
String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - player.getLastLoginTime(), true, true) + " ago";
|
||||
String lastSeen = player.isOnline() ? ChatColor.GREEN + "Online" : (System.currentTimeMillis() - player.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized);
|
||||
s = s.replace("{lastSeen}", lastSeen);
|
||||
}
|
||||
if (s.contains("{power}")) {
|
||||
String power = player.getPowerRounded() + "/" + player.getPowerMaxRounded();
|
||||
s = s.replace("{power}", power);
|
||||
}
|
||||
if (s.contains("{group}")) {
|
||||
String group = FactionsPlugin.getInstance().getPrimaryGroup(Bukkit.getOfflinePlayer(UUID.fromString(player.getId())));
|
||||
s = s.replace("{group}", group);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
public String replaceFactionTags(String s, Faction faction) {
|
||||
if (s.contains("{power}")) {
|
||||
s = s.replace("{power}", String.valueOf(faction.getPowerRounded()));
|
||||
}
|
||||
if (s.contains("{maxPower}")) {
|
||||
s = s.replace("{maxPower}", String.valueOf(faction.getPowerMaxRounded()));
|
||||
}
|
||||
if (s.contains("{leader}")) {
|
||||
FPlayer fLeader = faction.getFPlayerAdmin();
|
||||
String leader = fLeader == null ? "Server" : fLeader.getName().substring(0, fLeader.getName().length() > 14 ? 13 : fLeader.getName().length());
|
||||
s = s.replace("{leader}", leader);
|
||||
}
|
||||
if (s.contains("{chunks}")) {
|
||||
s = s.replace("{chunks}", String.valueOf(faction.getLandRounded()));
|
||||
}
|
||||
if (s.contains("{members}")) {
|
||||
s = s.replace("{members}", String.valueOf(faction.getSize()));
|
||||
public String replaceFactionTags(String s, Faction faction) {
|
||||
if (s.contains("{power}")) {
|
||||
s = s.replace("{power}", String.valueOf(faction.getPowerRounded()));
|
||||
}
|
||||
if (s.contains("{maxPower}")) {
|
||||
s = s.replace("{maxPower}", String.valueOf(faction.getPowerMaxRounded()));
|
||||
}
|
||||
if (s.contains("{leader}")) {
|
||||
FPlayer fLeader = faction.getFPlayerAdmin();
|
||||
String leader = fLeader == null ? "Server" : fLeader.getName().substring(0, fLeader.getName().length() > 14 ? 13 : fLeader.getName().length());
|
||||
s = s.replace("{leader}", leader);
|
||||
}
|
||||
if (s.contains("{chunks}")) {
|
||||
s = s.replace("{chunks}", String.valueOf(faction.getLandRounded()));
|
||||
}
|
||||
if (s.contains("{members}")) {
|
||||
s = s.replace("{members}", String.valueOf(faction.getSize()));
|
||||
|
||||
}
|
||||
if (s.contains("{online}")) {
|
||||
s = s.replace("{online}", String.valueOf(faction.getOnlinePlayers().size()));
|
||||
}
|
||||
return s;
|
||||
}
|
||||
}
|
||||
if (s.contains("{online}")) {
|
||||
s = s.replace("{online}", String.valueOf(faction.getOnlinePlayers().size()));
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
/*
|
||||
Help and Usage information
|
||||
*/
|
||||
public String getUseageTemplate(CommandContext context, boolean addShortHelp) {
|
||||
StringBuilder ret = new StringBuilder();
|
||||
ret.append(FactionsPlugin.getInstance().color(TL.COMMAND_USEAGE_TEMPLATE_COLOR.toString()));
|
||||
ret.append('/');
|
||||
/*
|
||||
Help and Usage information
|
||||
*/
|
||||
public String getUseageTemplate(CommandContext context, boolean addShortHelp) {
|
||||
StringBuilder ret = new StringBuilder();
|
||||
ret.append(FactionsPlugin.getInstance().color(TL.COMMAND_USEAGE_TEMPLATE_COLOR.toString()));
|
||||
ret.append('/');
|
||||
|
||||
for (FCommand fc : context.commandChain) {
|
||||
ret.append(TextUtil.implode(fc.aliases, ","));
|
||||
ret.append(' ');
|
||||
}
|
||||
for (FCommand fc : context.commandChain) {
|
||||
ret.append(TextUtil.implode(fc.aliases, ","));
|
||||
ret.append(' ');
|
||||
}
|
||||
|
||||
ret.append(TextUtil.implode(this.aliases, ","));
|
||||
ret.append(TextUtil.implode(this.aliases, ","));
|
||||
|
||||
List<String> args = new ArrayList<>();
|
||||
List<String> args = new ArrayList<>();
|
||||
|
||||
for (String requiredArg : this.requiredArgs) {
|
||||
args.add("<" + requiredArg + ">");
|
||||
}
|
||||
for (String requiredArg : this.requiredArgs) {
|
||||
args.add("<" + requiredArg + ">");
|
||||
}
|
||||
|
||||
for (Map.Entry<String, String> optionalArg : this.optionalArgs.entrySet()) {
|
||||
String val = optionalArg.getValue();
|
||||
if (val == null) {
|
||||
val = "";
|
||||
} else {
|
||||
val = "=" + val;
|
||||
}
|
||||
args.add("[" + optionalArg.getKey() + val + "]");
|
||||
}
|
||||
for (Map.Entry<String, String> optionalArg : this.optionalArgs.entrySet()) {
|
||||
String val = optionalArg.getValue();
|
||||
if (val == null) {
|
||||
val = "";
|
||||
} else {
|
||||
val = "=" + val;
|
||||
}
|
||||
args.add("[" + optionalArg.getKey() + val + "]");
|
||||
}
|
||||
|
||||
if (args.size() > 0) {
|
||||
ret.append(FactionsPlugin.getInstance().txt.parseTags(" "));
|
||||
ret.append(TextUtil.implode(args, " "));
|
||||
}
|
||||
if (args.size() > 0) {
|
||||
ret.append(FactionsPlugin.getInstance().txt.parseTags(" "));
|
||||
ret.append(TextUtil.implode(args, " "));
|
||||
}
|
||||
|
||||
if (addShortHelp) {
|
||||
ret.append(FactionsPlugin.getInstance().txt.parseTags(" "));
|
||||
ret.append(this.getHelpShort());
|
||||
}
|
||||
if (addShortHelp) {
|
||||
ret.append(FactionsPlugin.getInstance().txt.parseTags(" "));
|
||||
ret.append(this.getHelpShort());
|
||||
}
|
||||
|
||||
return ret.toString();
|
||||
}
|
||||
return ret.toString();
|
||||
}
|
||||
|
||||
public String getUseageTemplate(CommandContext context) {
|
||||
return getUseageTemplate(context, false);
|
||||
}
|
||||
public String getUseageTemplate(CommandContext context) {
|
||||
return getUseageTemplate(context, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user