/******************************************************************************* * This file is part of ASkyBlock. * * ASkyBlock is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ASkyBlock is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ASkyBlock. If not, see <http://www.gnu.org/licenses/>. *******************************************************************************/ package com.wasteofplastic.askyblock; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.TreeMap; import org.bukkit.Material; import org.bukkit.block.Biome; import org.bukkit.entity.EntityType; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.bukkit.potion.PotionEffectType; import com.wasteofplastic.askyblock.Island.SettingsFlag; /** * Where all the settings are * * @author tastybento */ public class Settings { // Constants // Game Type ASKYBLOCK or ACIDISLAND public enum GameType { ASKYBLOCK, ACIDISLAND } /* public final static GameType GAMETYPE = GameType.ACIDISLAND; // The spawn command (Essentials spawn for example) public final static String SPAWNCOMMAND = "spawn"; // Permission prefix public final static String PERMPREFIX = "acidisland."; // The island command public final static String ISLANDCOMMAND = "ai"; // The challenge command public static final String CHALLENGECOMMAND = "aic"; // Admin command public static final String ADMINCOMMAND = "acid"; */ public final static GameType GAMETYPE = GameType.ASKYBLOCK; // Permission prefix public final static String PERMPREFIX = "askyblock."; // The island command public final static String ISLANDCOMMAND = "island"; // The challenge command public static final String CHALLENGECOMMAND = "asc"; // The spawn command (Essentials spawn for example) public final static String SPAWNCOMMAND = "spawn"; // Admin command public static final String ADMINCOMMAND = "asadmin"; public static Set<String> challengeList; public static int waiverAmount; public static List<String> challengeLevels; public static double acidDamage; public static double mobAcidDamage; public static double rainDamage; public static int resetWait; public static int resetLimit; public static int maxTeamSize; public static String worldName; public static int monsterSpawnLimit; public static int animalSpawnLimit; public static int waterAnimalSpawnLimit; /** * Default world protection settings */ public static HashMap<SettingsFlag, Boolean> defaultWorldSettings = new HashMap<SettingsFlag, Boolean>(); /** * Default island protection settings */ public static HashMap<SettingsFlag, Boolean> defaultIslandSettings = new HashMap<SettingsFlag, Boolean>(); /** * Default spawn protection settings */ public static HashMap<SettingsFlag, Boolean> defaultSpawnSettings = new HashMap<SettingsFlag, Boolean>(); /** * Visitors settings to show in the GUI */ public static HashMap<SettingsFlag, Boolean> visitorSettings = new HashMap<SettingsFlag, Boolean>(); // Flymode public static int flyTimeOutside; // Temporary Permissions public static List<String> temporaryPermissions; // System settings public static boolean allowChestDamage; public static boolean allowCreeperDamage; public static boolean allowCreeperGriefing; public static boolean allowEndermanGriefing; public static boolean allowPistonPush; public static boolean allowTNTDamage; public static boolean allowVisitorKeepInvOnDeath; public static boolean restrictWither; public static ItemStack[] chestItems; public static int islandDistance; public static int islandXOffset; public static int islandZOffset; public static int seaHeight; public static int islandProtectionRange; public static int abandonedIslandLevel; public static Double startingMoney; public static double netherSpawnRadius; public static List<PotionEffectType> acidDamageType = new ArrayList<PotionEffectType>(); public static boolean resetMoney; public static boolean damageOps; public static boolean endermanDeathDrop; public static boolean onlyLeaderCanCoop; // Invincible visitor public static boolean invincibleVisitors; public static HashSet<DamageCause> visitorDamagePrevention; // public static boolean ultraSafeBoats; public static boolean logInRemoveMobs; public static boolean islandRemoveMobs; public static int islandHeight; public static boolean resetChallenges; // Levels public static HashMap<MaterialData, Integer> blockLimits; public static HashMap<MaterialData, Integer> blockValues; // Challenge completion broadcast public static boolean broadcastMessages; // Nether world public static boolean createNether; public static boolean clearInventory; // Use control panel for /island public static boolean useControlPanel; // Prevent /island when falling public static boolean allowTeleportWhenFalling; // Biomes public static double biomeCost; public static Biome defaultBiome; // Island reset commands public static List<String> resetCommands = new ArrayList<String>(); // Mob limits public static int breedingLimit; // Console shows teamchat messages public static boolean logTeamChat; // Challenges - show or remove completed on-time challenges public static boolean removeCompleteOntimeChallenges; public static boolean addCompletedGlow; // New nether public static boolean newNether; // Animal Damage public static double animalAcidDamage; public static boolean damageChickens; // Use Economy public static boolean useEconomy; // Use Minishop public static boolean useMinishop; // Wait between being invited to same team island public static int inviteWait; // Use physics when pasting schematic blocks public static boolean usePhysics; // Use old display (chat instead of GUI) for Island top ten public static boolean displayIslandTopTenInChat; // Need a certain amount of island levels to create a warp sign public static int warpLevelsRestriction; // Magic Cobble Generator public static boolean useMagicCobbleGen; public static boolean magicCobbleGenOnlyAtSpawn; public static TreeMap<Integer,TreeMap<Double,Material>> magicCobbleGenChances; // Disable offline redstone public static boolean disableOfflineRedstone; // Fancy island level display public static boolean fancyIslandLevelDisplay; // Falling blocked commands public static List<String> fallingCommandBlockList; public static List<String> leaveCommands; public static int levelWait; public static long resetConfirmWait; public static boolean loginLevel; public static boolean resetEnderChest; public static EntityType islandCompanion; public static boolean updateCheck; public static List<String> companionNames; public static long islandStartX; public static long islandStartZ; public static int maxHomes; public static boolean immediateTeleport; public static boolean makeIslandIfNone; public static boolean setTeamName; public static boolean useSchematicPanel; public static boolean chooseIslandRandomly; public static double underWaterMultiplier; public static String teamSuffix; public static int levelCost; public static boolean respawnOnIsland; public static boolean netherTrees; public static int maxTeamSizeVIP; public static int maxTeamSizeVIP2; public static boolean teamChat; public static List<String> startCommands; public static boolean useWarpPanel; public static List<EntityType> mobWhiteList = new ArrayList<EntityType>(); public static int villagerLimit; public static int hopperLimit; public static List<String> visitorCommandBlockList; public static boolean muteDeathMessages; public static int maxIslands; public static HashMap<String,Integer> limitedBlocks; public static long pvpRestartCooldown; public static long backupDuration; public static boolean acidBottle; public static boolean useOwnGenerator; public static List<String> freeLevels = new ArrayList<String>(); public static int cleanRate; public static boolean allowPushing; public static boolean recoverSuperFlat; protected static boolean levelLogging; public static boolean persistantCoops; //public static boolean allowSpawnCreeperPain; public static List<String> teamStartCommands; public static int minNameLength; public static int maxNameLength; public static int deathpenalty; public static boolean sumTeamDeaths; public static int maxDeaths; public static boolean islandResetDeathReset; public static boolean teamJoinDeathReset; public static boolean allowAutoActivator; public static boolean netherRoof; //public static boolean allowSpawnVillagerTrading; public static String chatLevelPrefix; public static String chatChallengeLevelPrefix; public static String chatIslandPlayer; public static boolean allowObsidianScooping; public static boolean allowFireExtinguish; //public static boolean allowSpawnFireExtinguish; public static boolean allowMobDamageToItemFrames; public static boolean kickedKeepInv; public static boolean hackSkeletonSpawners; public static HashMap<EntityType, Integer> entityLimits; public static long acidItemDestroyTime; public static boolean helmetProtection; public static boolean fullArmorProtection; public static String defaultLanguage; public static boolean showInActionBar; public static boolean leaversLoseReset; }