mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Removing Static Abuse - WorldBlackList -> WorldBlackListManager
This commit is contained in:
parent
bd0a673838
commit
8b39224cbc
@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.commands.party.teleport;
|
||||
|
||||
import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||
@ -53,7 +52,7 @@ public class PtpCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(player.getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(player.getWorld().getName()))
|
||||
return true;
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
|
||||
|
@ -1,209 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ConfigSerializable
|
||||
public class AdvancedConfig extends ConfigValidated {
|
||||
|
||||
public static final String SKILLS = "Skills";
|
||||
public static final String GENERAL = "General";
|
||||
public static final String ABILITY = "Ability";
|
||||
public static final String LENGTH = "Length";
|
||||
public static final String INCREASE_LEVEL = "IncreaseLevel";
|
||||
public static final String ENCHANT_BUFF = "EnchantBuff";
|
||||
public static final String ACROBATICS = "Acrobatics";
|
||||
public static final String DODGE = "Dodge";
|
||||
public static final String CHANCE = "Chance";
|
||||
public static final String CHANCE_MAX = CHANCE + "Max";
|
||||
public static final String BONUS = "Bonus";
|
||||
public static final String MAX_BONUS_LEVEL = "Max" + BONUS + "Level";
|
||||
public static final String MODIFIER = "Modifier";
|
||||
public static final String DAMAGE_MODIFIER = "Damage" + MODIFIER;
|
||||
public static final String DAMAGE_THRESHOLD = "DamageThreshold";
|
||||
public static final String ALCHEMY = "Alchemy";
|
||||
public static final String CATALYSIS = "Catalysis";
|
||||
public static final String MIN_SPEED = "MinSpeed";
|
||||
public static final String MAX_SPEED = "MaxSpeed";
|
||||
public static final String ARCHERY = "Archery";
|
||||
public static final String SKILL_SHOT = "SkillShot";
|
||||
public static final String MULTIPLIER = "Multiplier";
|
||||
public static final String RANK_DAMAGE_MULTIPLIER = "RankDamage" + MULTIPLIER;
|
||||
public static final String BONUS_DAMAGE = BONUS + "Damage";
|
||||
public static final String FORCE_MULTIPLIER = "Force" + MULTIPLIER;
|
||||
public static final String AXES = "Axes";
|
||||
public static final String STANDARD = "Standard";
|
||||
public static final String RETRO_MODE = "RetroMode";
|
||||
public static final String CAP_LEVEL = "CapLevel";
|
||||
public static final String KNOCKBACK_MODIFIER = "Knockback" + MODIFIER;
|
||||
public static final String PVP_MODIFIER = "PVP_" + MODIFIER;
|
||||
public static final String PVE_MODIFIER = "PVE_" + MODIFIER;
|
||||
public static final String FISHING = "Fishing";
|
||||
public static final String MASTER_ANGLER = "MasterAngler";
|
||||
public static final String BOAT_MODIFIER = "Boat" + MODIFIER;
|
||||
public static final String BIOME_MODIFIER = "Biome" + MODIFIER;
|
||||
public static final String XP = "XP";
|
||||
public static final String VANILLA_XPMULTIPLIER = "Vanilla" + XP + MULTIPLIER;
|
||||
public static final String RANK = "Rank_";
|
||||
public static final String TAMING = "Taming";
|
||||
public static final String CALL_OF_THE_WILD = "CallOfTheWild";
|
||||
public static final String MIN_HORSE_JUMP_STRENGTH = "MinHorseJumpStrength";
|
||||
public static final String MAX_HORSE_JUMP_STRENGTH = "MaxHorseJumpStrength";
|
||||
public static final String SHOCK_PROOF = "ShockProof";
|
||||
public static final String UNARMED = "Unarmed";
|
||||
public static final String STARTING_LEVEL = "StartingLevel";
|
||||
public static final String AXE_MASTERY = "AxeMastery";
|
||||
public static final String CRITICAL_STRIKES = "CriticalStrikes";
|
||||
public static final String GREATER_IMPACT = "GreaterImpact";
|
||||
public static final String ARMOR_IMPACT = "ArmorImpact";
|
||||
public static final String SKULL_SPLITTER = "SkullSplitter";
|
||||
public static final String MAX_PERCENTAGE_DURABILITY_DAMAGE = "MaxPercentageDurabilityDamage";
|
||||
public static final String SHAKE = "Shake";
|
||||
public static final String MINING = "Mining";
|
||||
public static final String BLAST_MINING = "BlastMining";
|
||||
public static final String LEVELS = "Levels";
|
||||
public static final String BLAST_DAMAGE_DECREASE = "BlastDamageDecrease";
|
||||
public static final String ORE_BONUS = "Ore" + BONUS;
|
||||
public static final String DEBRIS_REDUCTION = "DebrisReduction";
|
||||
public static final String DROP_MULTIPLIER = "Drop" + MULTIPLIER;
|
||||
public static final String BLAST_RADIUS = "BlastRadius";
|
||||
public static final String REPAIR = "Repair";
|
||||
public static final String REPAIR_MASTERY = "RepairMastery";
|
||||
public static final String MAX_BONUS_PERCENTAGE = "Max" + BONUS + "Percentage";
|
||||
public static final String ARCANE_FORGING = "ArcaneForging";
|
||||
public static final String MAY_LOSE_ENCHANTS = "May_Lose_Enchants";
|
||||
public static final String KEEP_ENCHANTS = "Keep_Enchants_";
|
||||
public static final String DOWNGRADES = "Downgrades_";
|
||||
public static final String ENABLED = "Enabled";
|
||||
public static final String DOWNGRADES_ENABLED = DOWNGRADES + ENABLED;
|
||||
public static final String SALVAGE = "Salvage";
|
||||
public static final String ARCANE_SALVAGE = "ArcaneSalvage";
|
||||
public static final String ENCHANT_DOWNGRADE_ENABLED = "EnchantDowngrade" + ENABLED;
|
||||
public static final String ENCHANT_LOSS_ENABLED = "EnchantLoss" + ENABLED;
|
||||
public static final String EXTRACT_FULL_ENCHANT = "ExtractFullEnchant";
|
||||
public static final String EXTRACT_PARTIAL_ENCHANT = "ExtractPartialEnchant";
|
||||
public static final String SMELTING = "Smelting";
|
||||
public static final String FUEL_EFFICIENCY = "FuelEfficiency";
|
||||
public static final String SWORDS = "Swords";
|
||||
public static final String RUPTURE = "Rupture";
|
||||
public static final String DAMAGE_PLAYER = "DamagePlayer";
|
||||
public static final String DAMAGE_MOBS = "DamageMobs";
|
||||
public static final String MAX_TICKS = "MaxTicks";
|
||||
public static final String BASE_TICKS = "BaseTicks";
|
||||
public static final String COUNTER_ATTACK = "CounterAttack";
|
||||
public static final String SERRATED_STRIKES = "SerratedStrikes";
|
||||
public static final String TICKS = "Ticks";
|
||||
public static final String GORE = "Gore";
|
||||
public static final String FAST_FOOD = "FastFood";
|
||||
public static final String FAST_FOOD_SERVICE = FAST_FOOD + "Service";
|
||||
public static final String PUMMEL = "Pummel";
|
||||
public static final String THICK_FUR = "ThickFur";
|
||||
public static final String SHARPENED_CLAWS = "SharpenedClaws";
|
||||
public static final String DISARM = "Disarm";
|
||||
public static final String ANTI_THEFT = "AntiTheft";
|
||||
public static final String DAZE = "Daze";
|
||||
public static final String MAX_DAMAGE = "MaxDamage";
|
||||
public static final String ROLL = "Roll";
|
||||
public static final String GRACEFUL_ROLL = "Graceful" + ROLL;
|
||||
public static final String ARROW_DEFLECT = "ArrowDeflect";
|
||||
public static final String IRON_GRIP = "IronGrip";
|
||||
public static final String WOODCUTTING = "Woodcutting";
|
||||
public static final String HARVEST_LUMBER = "HarvestLumber";
|
||||
public static final String FEEDBACK = "Feedback";
|
||||
public static final String SKILL_COMMAND = "SkillCommand";
|
||||
public static final String BLANK_LINES_ABOVE_HEADER = "BlankLinesAboveHeader";
|
||||
public static final String ACTION_BAR_NOTIFICATIONS = "ActionBarNotifications";
|
||||
public static final String SEND_COPY_OF_MESSAGE_TO_CHAT = "SendCopyOfMessageToChat";
|
||||
public static final String EVENTS = "Events";
|
||||
public static final String SEND_TITLES = "SendTitles";
|
||||
//private static AdvancedConfig instance;
|
||||
|
||||
public AdvancedConfig() {
|
||||
//super(mcMMO.getDataFolderPath().getAbsoluteFile(), "advanced.yml", true);
|
||||
super("advanced", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* This grabs an instance of this config class from the Config Manager
|
||||
* This method is deprecated and will be removed in the future
|
||||
*
|
||||
* @return the instance of this config
|
||||
* @see mcMMO#getConfigManager()
|
||||
* @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
*/
|
||||
@Deprecated
|
||||
public static AdvancedConfig getInstance() {
|
||||
return pluginRef.getConfigManager().getAdvancedConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
// Validate all the settings!
|
||||
List<String> reason = new ArrayList<>();
|
||||
return reason;
|
||||
}
|
||||
|
||||
/* GENERAL */
|
||||
|
||||
/* Notification Settings */
|
||||
|
||||
/* FISHING */
|
||||
public double getShakeChance(int rank) {
|
||||
return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank));
|
||||
}
|
||||
|
||||
public double getMasterAnglerBoatModifier() {
|
||||
return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER);
|
||||
}
|
||||
|
||||
public double getMasterAnglerBiomeModifier() {
|
||||
return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER);
|
||||
}
|
||||
|
||||
/* TAMING */
|
||||
public double getGoreModifier() {
|
||||
return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER);
|
||||
}
|
||||
|
||||
public double getFastFoodChance() {
|
||||
return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE);
|
||||
}
|
||||
|
||||
public double getPummelChance() {
|
||||
return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE);
|
||||
}
|
||||
|
||||
public double getThickFurModifier() {
|
||||
return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER);
|
||||
}
|
||||
|
||||
public double getShockProofModifier() {
|
||||
return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER);
|
||||
}
|
||||
|
||||
public double getSharpenedClawsBonus() {
|
||||
return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS);
|
||||
}
|
||||
|
||||
public double getMinHorseJumpStrength() {
|
||||
return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH);
|
||||
}
|
||||
|
||||
public double getMaxHorseJumpStrength() {
|
||||
return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH);
|
||||
}
|
||||
|
||||
}
|
@ -1,481 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.google.common.io.Files;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
|
||||
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Handles loading and cacheing configuration settings from a configurable compatible config file
|
||||
*/
|
||||
public abstract class Config implements VersionedConfig {
|
||||
|
||||
public static final String HOCON_FILE_EXTENSION = ".conf";
|
||||
public final File DIRECTORY_DATA_FOLDER; //Directory that the file is in
|
||||
public final String FILE_RELATIVE_PATH; //Relative Path to the file
|
||||
protected final String DIRECTORY_DEFAULTS = "defaults";
|
||||
/* SETTINGS */
|
||||
//private static final String FILE_EXTENSION = ".conf"; //HOCON
|
||||
private boolean mergeNewKeys; //Whether or not to merge keys found in the default config
|
||||
private boolean removeOldKeys; //Whether or not to remove unused keys form the config
|
||||
|
||||
/* PATH VARS */
|
||||
private boolean copyDefaults; //Whether or not to copy the default config when first creating the file
|
||||
private boolean generateDefaults; //Whether or not we use Configurate to generate a default file, if this is false we copy the file from the JAR
|
||||
private String fileName; //The file name of the config
|
||||
|
||||
/* LOADERS */
|
||||
private HoconConfigurationLoader defaultCopyLoader;
|
||||
private HoconConfigurationLoader userCopyLoader;
|
||||
|
||||
//private ConfigurationLoader<CommentedCommentedConfigurationNode> defaultCopyLoader;
|
||||
//private ConfigurationLoader<CommentedCommentedConfigurationNode> userCopyLoader;
|
||||
|
||||
/* CONFIG FILES */
|
||||
|
||||
private File resourceConfigCopy; //Copy of the default config from the JAR (file is copied so that admins can easily compare to defaults)
|
||||
private File resourceUserCopy; //File in the /$MCMMO_ROOT/mcMMO/ directory that may contain user edited settings
|
||||
|
||||
/* ROOT NODES */
|
||||
|
||||
private CommentedConfigurationNode userRootNode = null;
|
||||
private CommentedConfigurationNode defaultRootNode = null;
|
||||
|
||||
/* CONFIG MANAGER */
|
||||
//private ConfigurationLoader<CommentedCommentedConfigurationNode> configManager;
|
||||
|
||||
/*public Config(String pathToParentFolder, String relativePath, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
//TODO: Check if this works...
|
||||
this(new File(pathToParentFolder), relativePath, mergeNewKeys, copyDefaults, removeOldKeys);
|
||||
System.out.println("mcMMO Debug: Don't forget to check if loading config file by string instead of File works...");
|
||||
}*/
|
||||
|
||||
public Config(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
mkdirDefaults(); // Make our default config dir
|
||||
|
||||
/*
|
||||
* These must be at the top
|
||||
*/
|
||||
this.fileName = fileName;
|
||||
this.generateDefaults = generateDefaults;
|
||||
this.copyDefaults = copyDefaults;
|
||||
this.mergeNewKeys = mergeNewKeys; //Whether or not we add new keys when they are found
|
||||
this.removeOldKeys = removeOldKeys;
|
||||
|
||||
DIRECTORY_DATA_FOLDER = pathToParentFolder; //Data Folder for our plugin
|
||||
FILE_RELATIVE_PATH = relativePath + fileName + HOCON_FILE_EXTENSION; //Relative path to config from a parent folder
|
||||
}
|
||||
|
||||
public void initFullConfig() {
|
||||
//Attempt IO Operations
|
||||
try {
|
||||
//Makes sure we have valid Files corresponding to this config
|
||||
initConfigFiles();
|
||||
|
||||
//Init MainConfig Loaders
|
||||
initConfigLoaders();
|
||||
|
||||
//Load MainConfig Nodes
|
||||
loadConfig();
|
||||
|
||||
//Attempt to update user file, and then load it into memory
|
||||
readConfig();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//Cleanup and backup registers
|
||||
// registerUnload();
|
||||
registerFileBackup();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Registers with the config managers unloader
|
||||
// * The unloader runs when the plugin gets disabled which cleans up registries to make reloading safe
|
||||
// */
|
||||
// private void registerUnload() {
|
||||
// mcMMO.getConfigManager().registerUnloadable(this);
|
||||
// }
|
||||
|
||||
/**
|
||||
* Registers with the config managers file list
|
||||
* Used for backing up configs with our zip library
|
||||
*/
|
||||
private void registerFileBackup() {
|
||||
pluginRef.getConfigManager().registerUserFile(getUserConfigFile());
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the default copy File and the user config File
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
private void initConfigFiles() throws IOException {
|
||||
//Init our config copy
|
||||
resourceConfigCopy = initDefaultConfig();
|
||||
|
||||
//Init the user file
|
||||
resourceUserCopy = initUserConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the root node for the default config File and user config File
|
||||
*/
|
||||
private void loadConfig() {
|
||||
try {
|
||||
final CommentedConfigurationNode defaultConfig = this.defaultCopyLoader.load();
|
||||
defaultRootNode = defaultConfig;
|
||||
|
||||
final CommentedConfigurationNode userConfig = this.userCopyLoader.load();
|
||||
userRootNode = userConfig;
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the Configuration Loaders for this config
|
||||
*/
|
||||
private void initConfigLoaders() {
|
||||
this.defaultCopyLoader = HoconConfigurationLoader.builder().setPath(resourceConfigCopy.toPath()).build();
|
||||
this.userCopyLoader = HoconConfigurationLoader.builder().setPath(resourceUserCopy.toPath()).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies a new file from the JAR to the defaults directory and uses that new file to initialize our resourceConfigCopy
|
||||
*
|
||||
* @throws IOException
|
||||
* @see Config#resourceConfigCopy
|
||||
*/
|
||||
private File initDefaultConfig() throws IOException {
|
||||
if (generateDefaults) {
|
||||
return generateDefaultFile();
|
||||
} else
|
||||
return copyDefaultFromJar(getDefaultConfigCopyRelativePath(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a default config file using the Configurate library, makes use of @Setting and @ConfigSerializable annotations in the config file
|
||||
* Assigns the default root node to the newly loaded default config if successful
|
||||
*
|
||||
* @return the File for the newly created config
|
||||
*/
|
||||
private File generateDefaultFile() {
|
||||
pluginRef.getLogger().info("Attempting to create a default config for " + fileName);
|
||||
|
||||
//Not sure if this will work properly...
|
||||
Path potentialFile = Paths.get(getDefaultConfigCopyRelativePath());
|
||||
ConfigurationLoader<CommentedConfigurationNode> generation_loader
|
||||
= HoconConfigurationLoader.builder().setPath(potentialFile).build();
|
||||
|
||||
try {
|
||||
pluginRef.getLogger().info("Config File Full Path: " + getDefaultConfigFile().getAbsolutePath());
|
||||
//Delete any existing default config
|
||||
if (getDefaultConfigFile().exists())
|
||||
getDefaultConfigFile().delete();
|
||||
|
||||
//Make new file
|
||||
getDefaultConfigFile().createNewFile();
|
||||
|
||||
//Load the config
|
||||
defaultRootNode = generation_loader.load();
|
||||
|
||||
//Save to a new file
|
||||
generation_loader.save(defaultRootNode);
|
||||
|
||||
pluginRef.getLogger().info("Generated a default file for " + fileName);
|
||||
} catch (IOException e) {
|
||||
pluginRef.getLogger().severe("Error when trying to generate a default configuration file for " + getDefaultConfigCopyRelativePath());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//Return the default file
|
||||
return getDefaultConfigFile();
|
||||
}
|
||||
|
||||
/**
|
||||
* Attemps to load the config file if it exists, if it doesn't it copies a new one from within the JAR
|
||||
*
|
||||
* @return user config File
|
||||
* @throws IOException
|
||||
* @see Config#resourceUserCopy
|
||||
*/
|
||||
private File initUserConfig() throws IOException {
|
||||
File userCopy = new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH); //Load the user file;
|
||||
|
||||
if (userCopy.exists()) {
|
||||
// Yay
|
||||
return userCopy;
|
||||
} else {
|
||||
//If it's gone we copy default files
|
||||
//Note that we don't copy the values from the default copy put in /defaults/ that file exists only as a reference to admins and is unreliable
|
||||
if (copyDefaults)
|
||||
return copyDefaultFromJar(FILE_RELATIVE_PATH, false);
|
||||
else {
|
||||
//Make a new empty file
|
||||
userCopy.createNewFile();
|
||||
return userCopy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the File representation of the this users config
|
||||
*
|
||||
* @return the users config File
|
||||
*/
|
||||
public File getUserConfigFile() {
|
||||
return new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to make a new config file at a specified relative output path inside the data directory by copying the matching file found in that same relative path within the JAR
|
||||
*
|
||||
* @param relativeOutputPath the path to the output file
|
||||
* @param deleteOld whether or not to delete the existing output file on disk
|
||||
* @return a copy of the default config within the JAR
|
||||
* @throws IOException
|
||||
*/
|
||||
private File copyDefaultFromJar(String relativeOutputPath, boolean deleteOld) throws IOException {
|
||||
/*
|
||||
* Gen a Default config from inside the JAR
|
||||
*/
|
||||
pluginRef.getLogger().info("Preparing to copy internal resource file (in JAR) - " + FILE_RELATIVE_PATH);
|
||||
//InputStream inputStream = McmmoCore.getResource(FILE_RELATIVE_PATH);
|
||||
InputStream inputStream = pluginRef.getResource(FILE_RELATIVE_PATH);
|
||||
|
||||
byte[] buffer = new byte[inputStream.available()];
|
||||
inputStream.read(buffer);
|
||||
|
||||
//This is a copy of the default file, which we will overwrite every time mcMMO loads
|
||||
File targetFile = new File(DIRECTORY_DATA_FOLDER, relativeOutputPath);
|
||||
|
||||
//Wipe old default file on disk
|
||||
if (targetFile.exists() && deleteOld) {
|
||||
pluginRef.getLogger().info("Updating file " + relativeOutputPath);
|
||||
targetFile.delete(); //Necessary?
|
||||
}
|
||||
|
||||
if (!targetFile.exists()) {
|
||||
targetFile.getParentFile().mkdirs();
|
||||
targetFile.createNewFile(); //New File Boys
|
||||
}
|
||||
|
||||
Files.write(buffer, targetFile);
|
||||
pluginRef.getLogger().info("Created config file - " + relativeOutputPath);
|
||||
|
||||
inputStream.close(); //Close the input stream
|
||||
|
||||
return targetFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* The path to the defaults directory
|
||||
*
|
||||
* @return the path to the defaults directory
|
||||
*/
|
||||
private String getDefaultConfigCopyRelativePath() {
|
||||
return getDefaultConfigFile().getPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs the File representation of the default config, which is stored on disk in a defaults folder
|
||||
* this file will be overwritten every time mcMMO starts to keep it up to date.
|
||||
*
|
||||
* @return the copy of the default config file, stored in the defaults directory
|
||||
*/
|
||||
private File getDefaultConfigFile() {
|
||||
return new File(ConfigConstants.getDefaultsFolder(), FILE_RELATIVE_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the defaults directory
|
||||
*/
|
||||
private void mkdirDefaults() {
|
||||
ConfigConstants.makeAllConfigDirectories();
|
||||
}
|
||||
|
||||
/**
|
||||
* Configs are versioned based on when they had significant changes to keys
|
||||
*
|
||||
* @return current MainConfig Version String
|
||||
*/
|
||||
public String getVersion() {
|
||||
return String.valueOf(getConfigVersion());
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to read the loaded config file
|
||||
* MainConfig will have any necessary updates applied
|
||||
* MainConfig will be compared to the default config to see if it is missing any nodes
|
||||
* MainConfig will have any missing nodes inserted with their default value
|
||||
*/
|
||||
public void readConfig() {
|
||||
pluginRef.getLogger().info("Attempting to read " + FILE_RELATIVE_PATH + ".");
|
||||
|
||||
int version = this.userRootNode.getNode("ConfigVersion").getInt();
|
||||
pluginRef.getLogger().info(FILE_RELATIVE_PATH + " version is " + version);
|
||||
|
||||
//Update our config
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the users config file to the default and adds any missing nodes and applies any necessary updates
|
||||
*/
|
||||
private void updateConfig() {
|
||||
pluginRef.getLogger().info(defaultRootNode.getChildrenMap().size() + " items in default children map");
|
||||
pluginRef.getLogger().info(userRootNode.getChildrenMap().size() + " items in default root map");
|
||||
|
||||
// Merge Values from default
|
||||
if (mergeNewKeys)
|
||||
userRootNode = userRootNode.mergeValuesFrom(defaultRootNode);
|
||||
|
||||
removeOldKeys();
|
||||
|
||||
// Update config version
|
||||
updateConfigVersion();
|
||||
|
||||
//Attempt to save
|
||||
try {
|
||||
saveUserCopy();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds any keys in the users config that are not present in the default config and removes them
|
||||
*/
|
||||
//TODO: Finish this
|
||||
private void removeOldKeys() {
|
||||
if (!removeOldKeys)
|
||||
return;
|
||||
|
||||
for (CommentedConfigurationNode CommentedConfigurationNode : defaultRootNode.getChildrenList()) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the current state information of the config to the users copy (which they may edit)
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
private void saveUserCopy() throws IOException {
|
||||
pluginRef.getLogger().info("Saving new node");
|
||||
userCopyLoader.save(userRootNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs any necessary operations to update this config
|
||||
*/
|
||||
private void updateConfigVersion() {
|
||||
// Set a version for our config
|
||||
this.userRootNode.getNode("ConfigVersion").setValue(getConfigVersion());
|
||||
pluginRef.getLogger().info("Updated config to [" + getConfigVersion() + "] - " + FILE_RELATIVE_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the root node of this config
|
||||
*
|
||||
* @return the root node of this config
|
||||
*/
|
||||
protected CommentedConfigurationNode getUserRootNode() {
|
||||
return userRootNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an int from the config and casts it to short before returning
|
||||
*
|
||||
* @param path the path to the int
|
||||
* @return the value of the int after being cast to short at the node, null references will zero initialize
|
||||
*/
|
||||
public short getShortValue(String... path) {
|
||||
return (short) userRootNode.getNode(path).getInt();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs an int from the specified node
|
||||
*
|
||||
* @param path
|
||||
* @return the int from the node, null references will zero initialize
|
||||
*/
|
||||
public int getIntValue(String... path) {
|
||||
return userRootNode.getNode(path).getInt();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a double from the specified node
|
||||
*
|
||||
* @param path
|
||||
* @return the double from the node, null references will zero initialize
|
||||
*/
|
||||
public double getDoubleValue(String... path) {
|
||||
return userRootNode.getNode(path).getDouble();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a long from the specified node
|
||||
*
|
||||
* @param path
|
||||
* @return the long from the node, null references will zero initialize
|
||||
*/
|
||||
public long getLongValue(String... path) {
|
||||
return userRootNode.getNode(path).getLong();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a boolean from the specified node
|
||||
*
|
||||
* @param path
|
||||
* @return the boolean from the node, null references will zero initialize
|
||||
*/
|
||||
public boolean getBooleanValue(String... path) {
|
||||
return userRootNode.getNode(path).getBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a string from the specified node
|
||||
*
|
||||
* @param path
|
||||
* @return the string from the node, null references will zero initialize
|
||||
*/
|
||||
public String getStringValue(String... path) {
|
||||
return userRootNode.getNode(path).getString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if a node exists in the user's config file
|
||||
*
|
||||
* @param path path to the node
|
||||
* @return true if the node exists
|
||||
*/
|
||||
public boolean hasNode(String... path) {
|
||||
return (userRootNode.getNode(path) != null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the children of a specific node
|
||||
*
|
||||
* @param path the path to the parent node
|
||||
* @return the list of children for the target parent node
|
||||
*/
|
||||
public List<? extends CommentedConfigurationNode> getChildren(String... path) {
|
||||
return userRootNode.getNode(path).getChildrenList();
|
||||
}
|
||||
|
||||
public List<String> getListFromNode(String... path) throws ObjectMappingException {
|
||||
return userRootNode.getNode(path).getList(TypeToken.of(String.class));
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* This class is used for config files that validate their entries
|
||||
*/
|
||||
public abstract class ConfigValidated extends Config implements UnsafeValueValidation {
|
||||
/**
|
||||
* @param pathToParentFolder File for the "parent" folder on disk
|
||||
* @param relativePath Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
|
||||
* @param mergeNewKeys if true, the users config will add keys found in the internal file that are missing from the users file during load
|
||||
* @param copyDefaults if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
|
||||
*/
|
||||
public ConfigValidated(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
super(fileName, pathToParentFolder, relativePath, generateDefaults, mergeNewKeys, copyDefaults, removeOldKeys);
|
||||
validateEntries();
|
||||
}
|
||||
}
|
@ -1,269 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ConfigSerializable
|
||||
public class MainConfig extends ConfigValidated {
|
||||
|
||||
public static final String METRICS = "Metrics";
|
||||
public static final String BSTATS = "bstats";
|
||||
public static final String GENERAL = "General";
|
||||
public static final String RETRO_MODE = "RetroMode";
|
||||
public static final String ENABLED = "Enabled";
|
||||
public static final String LOCALE = "LocaleManager";
|
||||
public static final String EN_US = "en_us";
|
||||
public static final String SHOW_PROFILE_LOADED = "Show_Profile_Loaded";
|
||||
public static final String DONATE_MESSAGE = "Donate_Message";
|
||||
public static final String MCMMO = "mcmmo";
|
||||
public static final String DATABASE_PREFIX = MCMMO + "_";
|
||||
public static final String COMMANDS = "Commands";
|
||||
public static final String SAVE_INTERVAL = "Save_Interval";
|
||||
public static final String STATS = "Stats";
|
||||
public static final String STATS_TRACKING = STATS + "_Tracking";
|
||||
public static final String UPDATE_CHECK = "Update_Check";
|
||||
public static final String PREFER_BETA = "Prefer_Beta";
|
||||
public static final String VERBOSE_LOGGING = "Verbose_Logging";
|
||||
public static final String PARTYCHAT = "partychat";
|
||||
public static final String CHAT_PREFIX_FORMAT = "Chat_Prefix_Format";
|
||||
public static final String NAME = "Name";
|
||||
public static final String GOLD_LEADER_NAME = "Gold_Leader_" + NAME;
|
||||
public static final String USE_DISPLAY_NAMES = "Use_Display_" + NAME + "s";
|
||||
public static final String ALLY = "_Ally";
|
||||
public static final String ADMINCHAT = "adminchat";
|
||||
public static final String GENERIC = "Generic";
|
||||
public static final String MATCH_OFFLINE_PLAYERS = "Match_OfflinePlayers";
|
||||
public static final String DATABASE = "Database";
|
||||
public static final String COOLDOWN = "Cooldown";
|
||||
public static final String PLAYER_COOLDOWN = "Player_" + COOLDOWN;
|
||||
public static final String LEVEL_UP = "LevelUp_";
|
||||
public static final String SOUND = "Sound";
|
||||
public static final String LEVEL_UP_SOUNDS = "LevelUp_Sounds";
|
||||
public static final String REFRESH_CHUNKS = "Refresh_Chunks";
|
||||
public static final String MOB_HEALTHBAR = "Mob_Healthbar";
|
||||
public static final String DISPLAY_TYPE = "Display_Type";
|
||||
public static final String HEARTS = "HEARTS";
|
||||
public static final String DISPLAY_TIME = "Display_Time";
|
||||
public static final String SCOREBOARD = "ConfigScoreboard";
|
||||
public static final String USE_SCOREBOARDS = "UseScoreboards";
|
||||
public static final String POWER = "Power_";
|
||||
public static final String POWER_LEVEL_TAGS = POWER + "Level_Tags";
|
||||
public static final String KEEP = "Keep";
|
||||
public static final String ALLOW_KEEP = "Allow_" + KEEP;
|
||||
public static final String TIPS_AMOUNT = "Tips_Amount";
|
||||
public static final String SHOW_STATS_AFTER_LOGIN = "Show_" + STATS + "_After_Login";
|
||||
public static final String RAINBOWS = "Rainbows";
|
||||
public static final String ABILITY_NAMES = "Ability_" + NAME + "s";
|
||||
public static final String TYPES = "Types";
|
||||
public static final String RANK = "Rank";
|
||||
public static final String PRINT = "Print";
|
||||
public static final String BOARD = "Board";
|
||||
public static final String TOP = "Top";
|
||||
public static final String INSPECT = "Inspect";
|
||||
public static final String SKILL = "Skill";
|
||||
public static final String TIME = "Time";
|
||||
public static final String PURGING = "_Purging";
|
||||
public static final String PURGE_INTERVAL = "Purge_Interval";
|
||||
public static final String OLD_USER_CUTOFF = "Old_User_Cutoff";
|
||||
public static final String BACKUPS = "Backups";
|
||||
public static final String KEEP_LAST_24_HOURS = KEEP + ".Last_24_Hours";
|
||||
public static final String DAILY_LAST_WEEK = "Daily_Last_Week";
|
||||
public static final String WEEKLY_PAST_MONTHS = "Weekly_Past_Months";
|
||||
public static final String MY_SQL = "MySQL";
|
||||
public static final String TABLE_PREFIX = "TablePrefix";
|
||||
public static final String USER_NAME = "User_" + NAME;
|
||||
public static final String SERVER = "Server";
|
||||
public static final String PORT = "Port";
|
||||
public static final String ADDRESS = "Address";
|
||||
public static final String LOCALHOST = "localhost";
|
||||
public static final String USER_PASSWORD = "User_Password";
|
||||
public static final String MAX_CONNECTIONS = "MaxConnections";
|
||||
public static final String MAX_POOL_SIZE = "MaxPoolSize";
|
||||
public static final String SSL = "SSL";
|
||||
public static final String HARDCORE = "Hardcore";
|
||||
public static final String DEATH_STAT_LOSS = "Death_Stat_Loss";
|
||||
public static final String PENALTY_PERCENTAGE = "Penalty_Percentage";
|
||||
public static final String LEVEL_THRESHOLD = "Level_Threshold";
|
||||
public static final String VAMPIRISM = "Vampirism";
|
||||
public static final String LEECH_PERCENTAGE = "Leech_Percentage";
|
||||
public static final String ITEMS = "Items";
|
||||
public static final String CHIMAERA_WING = "Chimaera_Wing";
|
||||
public static final String USE_COST = "Use_Cost";
|
||||
public static final String RECIPE_COST = "Recipe_Cost";
|
||||
public static final String ITEM = "Item_";
|
||||
public static final String FEATHER = "Feather";
|
||||
public static final String PREVENT = "Prevent_";
|
||||
public static final String PREVENT_USE_UNDERGROUND = PREVENT + "Use_Underground";
|
||||
public static final String USE_BED_SPAWN = "Use_Bed_Spawn";
|
||||
public static final String WARMUP = "Warmup";
|
||||
public static final String RECENTLY_HURT = "RecentlyHurt_";
|
||||
public static final String PARTICLES = "Particles";
|
||||
public static final String ACTIVATION = "Activation";
|
||||
public static final String ABILITY_ACTIVATION = "Ability_" + ACTIVATION;
|
||||
public static final String ABILITY_DEACTIVATION = "Ability_Deactivation";
|
||||
public static final String BLEED = "Bleed";
|
||||
public static final String DODGE = "Dodge";
|
||||
public static final String FLUX = "Flux";
|
||||
public static final String GREATER_IMPACT = "Greater_Impact";
|
||||
public static final String CALL_OF_THE_WILD = "Call_of_the_Wild";
|
||||
public static final String TIER = "Tier";
|
||||
public static final String LARGE_FIREWORKS = "LargeFireworks";
|
||||
public static final String PARTY = "Party";
|
||||
public static final String FRIENDLY_FIRE = "FriendlyFire";
|
||||
public static final String MAX_SIZE = "MaxSize";
|
||||
public static final String AUTO_KICK_INTERVAL = "AutoKick_Interval";
|
||||
public static final String OLD_PARTY_MEMBER_CUTOFF = "Old_Party_Member_Cutoff";
|
||||
public static final String SHARING = "Sharing";
|
||||
public static final String SHARING_EXP_SHARE_BONUS_BASE = SHARING + "ExpShare_bonus_base";
|
||||
public static final String EXP_SHARE_BONUS_INCREASE = "ExpShare_bonus_increase";
|
||||
public static final String EXP_SHARE_BONUS_CAP = "ExpShare_bonus_cap";
|
||||
public static final String RANGE = "Range";
|
||||
public static final String LEVELING = "Leveling";
|
||||
public static final String LEVEL_CAP = "Level_Cap";
|
||||
public static final String XP_CURVE_MODIFIER = "Xp_Curve_Modifier";
|
||||
public static final String NEAR_MEMBERS_NEEDED = "Near_Members_Needed";
|
||||
public static final String INFORM_ALL_PARTY_MEMBERS_ON_LEVEL_UP = "Inform_All_Party_Members_On_LevelUp";
|
||||
public static final String UNLOCK_LEVEL = "_UnlockLevel";
|
||||
public static final String PTP = "ptp";
|
||||
public static final String ACCEPT_REQUIRED = "Accept_Required";
|
||||
public static final String REQUEST_TIMEOUT = "Request_Timeout";
|
||||
public static final String WORLD_BASED_PERMISSIONS = "World_Based_Permissions";
|
||||
public static final String INSPECT1 = "inspect";
|
||||
public static final String MAX_DISTANCE = "Max_Distance";
|
||||
public static final String SKILLS = "Skills";
|
||||
public static final String URL_LINKS = "URL_Links";
|
||||
public static final String ABILITIES = "Abilities";
|
||||
public static final String MESSAGES = "Messages";
|
||||
public static final String ONLY_ACTIVATE_WHEN_SNEAKING = "Only_Activate_When_Sneaking";
|
||||
public static final String LEVEL_GATE_ABILITIES = "Level_Gate_Abilities";
|
||||
public static final String COOLDOWNS = "Cooldowns";
|
||||
public static final String MAX_SECONDS = "Max_Seconds";
|
||||
public static final String TOOLS = "Tools";
|
||||
public static final String DURABILITY_LOSS = "Durability_Loss";
|
||||
public static final String LIMITS = "Limits";
|
||||
public static final String TREE_FELLER = "Tree_Feller_";
|
||||
public static final String TREE_FELLER_THRESHOLD = TREE_FELLER + "Threshold";
|
||||
public static final String DOUBLE_DROPS = "Double_Drops";
|
||||
public static final String AXES = "Axes";
|
||||
public static final String TRUNCATE = "Truncate";
|
||||
public static final String FOR_PVP = "_For_PVP";
|
||||
public static final String FOR_PVE = "_For_PVE";
|
||||
public static final String ACROBATICS = "Acrobatics";
|
||||
public static final String PREVENT_AFK = PREVENT + "AFK_";
|
||||
public static final String WOODCUTTING = "Woodcutting";
|
||||
public static final String SOUNDS = "Sounds";
|
||||
public static final String MAX_TRIES_AT_SAME_LOCATION = "Max_Tries_At_Same_Location";
|
||||
public static final String HERBALISM = "Herbalism";
|
||||
public static final String TAMING = "Taming";
|
||||
public static final String CALL_OF_THE_WILD1 = "Call_Of_The_Wild";
|
||||
public static final String SUMMON_AMOUNT = "Summon_Amount";
|
||||
public static final String SUMMON_LENGTH = "Summon_Length";
|
||||
public static final String SUMMON_MAX_AMOUNT = "Summon_Max_Amount";
|
||||
public static final String AMOUNT = "Amount";
|
||||
public static final String MATERIAL = "Material";
|
||||
public static final String REPAIR = "Repair";
|
||||
public static final String CONFIRM_REQUIRED = "Confirm_Required";
|
||||
public static final String ANVIL = "Anvil_";
|
||||
public static final String ANVIL_MATERIAL = ANVIL + "Material";
|
||||
public static final String IRON_BLOCK = "IRON_BLOCK";
|
||||
public static final String ANVIL_USE = ANVIL + "Use_";
|
||||
public static final String ANVIL_PLACED = ANVIL + "Placed_";
|
||||
public static final String SALVAGE = "Salvage";
|
||||
public static final String UNARMED = "Unarmed";
|
||||
public static final String BLOCK_CRACKER = "Block_Cracker";
|
||||
public static final String SMOOTH_BRICK_TO_CRACKED_BRICK = "SmoothBrick_To_CrackedBrick";
|
||||
public static final String PICKUP_DISABLED_FULL_INVENTORY = "Pickup_Disabled_Full_Inventory";
|
||||
public static final String AS = "_As_";
|
||||
public static final String MINING = "Mining";
|
||||
public static final String DETONATOR = "Detonator_";
|
||||
public static final String FLINT_AND_STEEL = "FLINT_AND_STEEL";
|
||||
public static final String FISHING = "Fishing";
|
||||
public static final String LURE_MODIFIER = "Lure_Modifier";
|
||||
public static final String EXTRA_FISH = "Extra_Fish";
|
||||
public static final String OVERRIDE_VANILLA_TREASURES = "Override_Vanilla_Treasures";
|
||||
public static final String DROPS = "Drops_";
|
||||
public static final String ALCHEMY = "Alchemy";
|
||||
public static final String PREVENT_HOPPER_TRANSFER_BOTTLES = PREVENT + "Hopper_Transfer_Bottles";
|
||||
public static final String PREVENT_HOPPER_TRANSFER_INGREDIENTS = PREVENT + "Hopper_Transfer_Ingredients";
|
||||
public static final String FOR_HOPPERS = "_for_Hoppers";
|
||||
public static final String XP_AFTER_TELEPORT = "XP_After_Teleport_";
|
||||
public static final String LIGHTNING = "_Lightning";
|
||||
public static final String GOLD_BLOCK = "GOLD_BLOCK";
|
||||
public static final String PICKAXE = "_Pickaxe";
|
||||
public static final String EXP_SHARE_BONUS_BASE = "ExpShare_bonus_base";
|
||||
|
||||
public MainConfig() {
|
||||
//super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "config.yml", true);
|
||||
super("main", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* This grabs an instance of this config class from the Config Manager
|
||||
* This method is deprecated and will be removed in the future
|
||||
*
|
||||
* @return the instance of this config
|
||||
* @see mcMMO#getConfigManager()
|
||||
* @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
*/
|
||||
@Deprecated
|
||||
public static MainConfig getInstance() {
|
||||
return pluginRef.getConfigManager().getMainConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
// Validate all the settings!
|
||||
List<String> reason = new ArrayList<>();
|
||||
return reason;
|
||||
}
|
||||
|
||||
public boolean getPreventHopperTransferIngredients() {
|
||||
return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_INGREDIENTS);
|
||||
}
|
||||
|
||||
public boolean getPreventHopperTransferBottles() {
|
||||
return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_BOTTLES);
|
||||
}
|
||||
|
||||
/* Taming */
|
||||
public Material getTamingCOTWMaterial(EntityType type) {
|
||||
return Material.matchMaterial(getStringValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + MATERIAL));
|
||||
}
|
||||
|
||||
public int getTamingCOTWCost(EntityType type) {
|
||||
return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + AMOUNT);
|
||||
}
|
||||
|
||||
public int getTamingCOTWAmount(EntityType type) {
|
||||
return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_AMOUNT);
|
||||
}
|
||||
|
||||
public int getTamingCOTWLength(EntityType type) {
|
||||
return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_LENGTH);
|
||||
}
|
||||
|
||||
public int getTamingCOTWMaxAmount(EntityType type) {
|
||||
return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_MAX_AMOUNT);
|
||||
}
|
||||
|
||||
public double getTamingCOTWRange() {
|
||||
return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD1, RANGE);
|
||||
}
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is for config validation
|
||||
*/
|
||||
public interface UnsafeValueValidation {
|
||||
List<String> validateKeys();
|
||||
|
||||
/**
|
||||
* Prints all errors found when validating the config
|
||||
*/
|
||||
default void validateEntries() {
|
||||
/*
|
||||
* Print Errors about Keys
|
||||
*/
|
||||
|
||||
List<String> validKeyErrors = validateKeys(); // Validate Keys
|
||||
|
||||
if (validKeyErrors != null && validKeyErrors.size() > 0) {
|
||||
for (String error : validKeyErrors) {
|
||||
pluginRef.getLogger().severe(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
public interface Validation {
|
||||
void validate();
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
/**
|
||||
* Represents a config that is version checked
|
||||
*/
|
||||
public interface VersionedConfig {
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
double getConfigVersion();
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
/**
|
||||
* Blacklist certain features in certain worlds
|
||||
*/
|
||||
public class WorldBlacklist {
|
||||
|
||||
public static boolean isWorldBlacklisted(World world) {
|
||||
for (String s : pluginRef.getConfigManager().getConfigWorldBlacklist().getBlackListedWorlds()) {
|
||||
if (world.getName().equalsIgnoreCase(s))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@ -1,274 +1,274 @@
|
||||
package com.gmail.nossr50.config.treasure;
|
||||
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.ConfigConstants;
|
||||
import com.gmail.nossr50.config.UnsafeValueValidation;
|
||||
import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.Rarity;
|
||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.EnchantmentUtils;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import ninja.leaping.configurate.ConfigurationNode;
|
||||
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class FishingTreasureConfig extends Config implements UnsafeValueValidation {
|
||||
public static final String PLAYER = "PLAYER";
|
||||
public static final String INVENTORY = "INVENTORY";
|
||||
public static final String WHOLE_STACKS = "Whole_Stacks";
|
||||
public static final String DROP_CHANCE = "Drop_Chance";
|
||||
public static final String DROP_LEVEL = "Drop_Level";
|
||||
public static final String TIER = "Tier_";
|
||||
public static final String ENCHANTMENTS_RARITY = "Enchantments_Rarity";
|
||||
public static final String ITEM_DROP_RATES = "Item_Drop_Rates";
|
||||
public static final String FISHING = "Fishing";
|
||||
public static final String ENCHANTMENT_DROP_RATES = "Enchantment_Drop_Rates";
|
||||
public static final String SHAKE = "Shake";
|
||||
public static final String AMOUNT = "Amount";
|
||||
public static final String XP = "XP";
|
||||
public static final String CUSTOM_NAME = "Custom_Name";
|
||||
public static final String LORE = "Lore";
|
||||
public static final String RARITY = "Rarity";
|
||||
public static final String DROPS_FROM = "Drops_From";
|
||||
|
||||
public HashMap<EntityType, List<ShakeTreasure>> shakeMap = new HashMap<>();
|
||||
public HashMap<Rarity, List<FishingTreasure>> fishingRewards = new HashMap<>();
|
||||
public HashMap<Rarity, List<EnchantmentTreasure>> fishingEnchantments = new HashMap<>();
|
||||
|
||||
public FishingTreasureConfig() {
|
||||
super("fishing_drops", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, false, true, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* This grabs an instance of this config class from the Config Manager
|
||||
* This method is deprecated and will be removed in the future
|
||||
*
|
||||
* @return the instance of this config
|
||||
* @see mcMMO#getConfigManager()
|
||||
* @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
*/
|
||||
@Deprecated
|
||||
public static FishingTreasureConfig getInstance() {
|
||||
return pluginRef.getConfigManager().getFishingTreasureConfig();
|
||||
}
|
||||
|
||||
private void loadShake(EntityType entityType) {
|
||||
ConfigurationNode shakeTreasureNode = getUserRootNode().getNode(SHAKE, entityType.toString());
|
||||
|
||||
if (shakeTreasureNode != null)
|
||||
return;
|
||||
|
||||
try {
|
||||
for (ConfigurationNode treasureNode : shakeTreasureNode.getChildrenList()) {
|
||||
|
||||
String treasureName = treasureNode.getString();
|
||||
//Treasure Material Definition
|
||||
Material treasureMaterial = Material.matchMaterial(treasureName.toUpperCase());
|
||||
|
||||
if (treasureMaterial != null) {
|
||||
ConfigurationNode currentTreasure = shakeTreasureNode.getNode(treasureName);
|
||||
|
||||
//TODO: Rewrite the entire treasure system because it sucks
|
||||
|
||||
/*
|
||||
* TREASURE PARAMETERS
|
||||
*/
|
||||
int amount = currentTreasure.getNode(AMOUNT).getInt();
|
||||
int xp = currentTreasure.getNode(XP).getInt();
|
||||
double dropChance = currentTreasure.getNode(DROP_CHANCE).getDouble();
|
||||
int dropLevel = currentTreasure.getNode(DROP_LEVEL).getInt();
|
||||
String customName = null;
|
||||
|
||||
/*
|
||||
* PARAMETER INIT
|
||||
*/
|
||||
|
||||
ArrayList<String> dropsFrom = new ArrayList(currentTreasure.getNode(DROPS_FROM).getList(TypeToken.of(String.class)));
|
||||
|
||||
//VALIDATE AMOUNT
|
||||
if (amount <= 0) {
|
||||
pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has an amount of 0 or below, is this intentional?");
|
||||
pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
continue;
|
||||
}
|
||||
|
||||
//VALIDATE XP
|
||||
if (xp <= 0) {
|
||||
pluginRef.getLogger().info("Excavation Treasure named " + treasureName + " in the config has xp set to 0 or below, is this intentional?");
|
||||
xp = 0;
|
||||
}
|
||||
|
||||
//VALIDATE DROP CHANCE
|
||||
if (dropChance <= 0) {
|
||||
pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has a drop chance of 0 or below, is this intentional?");
|
||||
pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
continue;
|
||||
}
|
||||
|
||||
//VALIDATE DROP LEVEL
|
||||
if (dropLevel < 0) {
|
||||
pluginRef.getLogger().info("Excavation Treasure named " + treasureName + " in the config has a drop level below 0, is this intentional?");
|
||||
dropLevel = 0;
|
||||
}
|
||||
|
||||
//VALIDATE DROP SOURCES
|
||||
if (dropsFrom == null || dropsFrom.isEmpty()) {
|
||||
pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has no drop targets, which would make it impossible to obtain, is this intentional?");
|
||||
pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* OPTIONAL PARAMETERS */
|
||||
|
||||
//Custom Name
|
||||
|
||||
if (currentTreasure.getNode(CUSTOM_NAME) != null && !currentTreasure.getNode(CUSTOM_NAME).getString().equalsIgnoreCase("ChangeMe")) {
|
||||
customName = currentTreasure.getNode(CUSTOM_NAME).getString();
|
||||
}
|
||||
|
||||
/*
|
||||
* REGISTER TREASURE
|
||||
*/
|
||||
|
||||
ShakeTreasure shakeTreasure = TreasureFactory.makeShakeTreasure(treasureMaterial, amount, xp, dropChance, dropLevel, customName, currentTreasure.getNode(LORE));
|
||||
|
||||
/*
|
||||
* Add to map
|
||||
*/
|
||||
shakeMap.computeIfAbsent(entityType, k -> new ArrayList<>());
|
||||
|
||||
shakeMap.get(entityType).add(shakeTreasure);
|
||||
|
||||
} else {
|
||||
pluginRef.getLogger().severe("Excavation Treasure Config - Material named " + treasureName + " does not match any known material.");
|
||||
}
|
||||
}
|
||||
} catch (ObjectMappingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadEnchantments() {
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
if (rarity == Rarity.RECORD) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!fishingEnchantments.containsKey(rarity)) {
|
||||
fishingEnchantments.put(rarity, (new ArrayList<>()));
|
||||
}
|
||||
|
||||
ConfigurationNode enchantmentSection = getUserRootNode().getNode(ENCHANTMENTS_RARITY, rarity.toString());
|
||||
|
||||
if (enchantmentSection == null) {
|
||||
pluginRef.getLogger().info("No enchantment information for fishing treasures, is this intentional?");
|
||||
return;
|
||||
}
|
||||
|
||||
for (ConfigurationNode enchantmentNode : enchantmentSection.getChildrenList()) {
|
||||
|
||||
String enchantmentName = enchantmentNode.getString();
|
||||
int level = getIntValue(ENCHANTMENTS_RARITY, rarity.toString(), enchantmentName);
|
||||
Enchantment enchantment = EnchantmentUtils.getByName(enchantmentName);
|
||||
|
||||
if (enchantment == null) {
|
||||
pluginRef.getLogger().severe("Skipping invalid enchantment in treasures.yml: " + enchantmentName);
|
||||
continue;
|
||||
}
|
||||
|
||||
fishingEnchantments.get(rarity).add(new EnchantmentTreasure(enchantment, level));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> validateKeys() {
|
||||
// Validate all the settings!
|
||||
List<String> errorMessages = new ArrayList<>();
|
||||
try {
|
||||
for (String tier : getUserRootNode().getNode(ENCHANTMENT_DROP_RATES).getList(TypeToken.of(String.class))) {
|
||||
/*double totalEnchantDropRate = 0;
|
||||
double totalItemDropRate = 0;*/
|
||||
|
||||
for (Rarity rarity : Rarity.values()) {
|
||||
double enchantDropRate = getDoubleValue(ENCHANTMENT_DROP_RATES, tier, rarity.toString());
|
||||
double itemDropRate = getDoubleValue(ITEM_DROP_RATES, tier, rarity.toString());
|
||||
|
||||
if ((enchantDropRate < 0.0 || enchantDropRate > 100.0) && rarity != Rarity.RECORD) {
|
||||
errorMessages.add("The enchant drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
|
||||
//Bound Values
|
||||
/*enchantDropRate = boundValues(enchantDropRate, 0.0D, 100.0D);*/
|
||||
}
|
||||
|
||||
if (itemDropRate < 0.0 || itemDropRate > 100.0) {
|
||||
errorMessages.add("The item drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
|
||||
//Bound Values
|
||||
/*itemDropRate = boundValues(itemDropRate, 0.0D, 100.0D);*/
|
||||
}
|
||||
|
||||
/*totalEnchantDropRate += enchantDropRate;
|
||||
totalItemDropRate += itemDropRate;*/
|
||||
}
|
||||
|
||||
//TODO: Why does it matter what the total item/enchant drop rate is?
|
||||
|
||||
/*if (totalEnchantDropRate < 0 || totalEnchantDropRate > 100.0) {
|
||||
errorMessages.add("The total enchant drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
}
|
||||
|
||||
if (totalItemDropRate < 0 || totalItemDropRate > 100.0) {
|
||||
errorMessages.add("The total item drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
}*/
|
||||
}
|
||||
} catch (ObjectMappingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return errorMessages;
|
||||
}
|
||||
|
||||
/**
|
||||
* The version of this config
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public double getConfigVersion() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public boolean getInventoryStealEnabled() {
|
||||
return hasNode(SHAKE, PLAYER, INVENTORY);
|
||||
}
|
||||
|
||||
public boolean getInventoryStealStacks() {
|
||||
return getBooleanValue(SHAKE, PLAYER, INVENTORY, WHOLE_STACKS);
|
||||
}
|
||||
|
||||
public double getInventoryStealDropChance() {
|
||||
return getDoubleValue(SHAKE, PLAYER, INVENTORY, DROP_CHANCE);
|
||||
}
|
||||
|
||||
public int getInventoryStealDropLevel() {
|
||||
return getIntValue(SHAKE, PLAYER, INVENTORY, DROP_LEVEL);
|
||||
}
|
||||
|
||||
public double getItemDropRate(int tier, Rarity rarity) {
|
||||
return getDoubleValue(ITEM_DROP_RATES, TIER + tier, rarity.toString());
|
||||
}
|
||||
|
||||
public double getEnchantmentDropRate(int tier, Rarity rarity) {
|
||||
return getDoubleValue(ENCHANTMENT_DROP_RATES, TIER + tier, rarity.toString());
|
||||
}
|
||||
}
|
||||
//package com.gmail.nossr50.config.treasure;
|
||||
//
|
||||
//import com.gmail.nossr50.config.Config;
|
||||
//import com.gmail.nossr50.config.ConfigConstants;
|
||||
//import com.gmail.nossr50.config.UnsafeValueValidation;
|
||||
//import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
|
||||
//import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
//import com.gmail.nossr50.datatypes.treasure.Rarity;
|
||||
//import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//import com.gmail.nossr50.util.EnchantmentUtils;
|
||||
//import com.google.common.reflect.TypeToken;
|
||||
//import ninja.leaping.configurate.ConfigurationNode;
|
||||
//import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
||||
//import org.bukkit.Material;
|
||||
//import org.bukkit.enchantments.Enchantment;
|
||||
//import org.bukkit.entity.EntityType;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.HashMap;
|
||||
//import java.util.List;
|
||||
//
|
||||
//public class FishingTreasureConfig extends Config implements UnsafeValueValidation {
|
||||
// public static final String PLAYER = "PLAYER";
|
||||
// public static final String INVENTORY = "INVENTORY";
|
||||
// public static final String WHOLE_STACKS = "Whole_Stacks";
|
||||
// public static final String DROP_CHANCE = "Drop_Chance";
|
||||
// public static final String DROP_LEVEL = "Drop_Level";
|
||||
// public static final String TIER = "Tier_";
|
||||
// public static final String ENCHANTMENTS_RARITY = "Enchantments_Rarity";
|
||||
// public static final String ITEM_DROP_RATES = "Item_Drop_Rates";
|
||||
// public static final String FISHING = "Fishing";
|
||||
// public static final String ENCHANTMENT_DROP_RATES = "Enchantment_Drop_Rates";
|
||||
// public static final String SHAKE = "Shake";
|
||||
// public static final String AMOUNT = "Amount";
|
||||
// public static final String XP = "XP";
|
||||
// public static final String CUSTOM_NAME = "Custom_Name";
|
||||
// public static final String LORE = "Lore";
|
||||
// public static final String RARITY = "Rarity";
|
||||
// public static final String DROPS_FROM = "Drops_From";
|
||||
//
|
||||
// public HashMap<EntityType, List<ShakeTreasure>> shakeMap = new HashMap<>();
|
||||
// public HashMap<Rarity, List<FishingTreasure>> fishingRewards = new HashMap<>();
|
||||
// public HashMap<Rarity, List<EnchantmentTreasure>> fishingEnchantments = new HashMap<>();
|
||||
//
|
||||
// public FishingTreasureConfig() {
|
||||
// super("fishing_drops", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, false, true, false);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * This grabs an instance of this config class from the Config Manager
|
||||
// * This method is deprecated and will be removed in the future
|
||||
// *
|
||||
// * @return the instance of this config
|
||||
// * @see mcMMO#getConfigManager()
|
||||
// * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static FishingTreasureConfig getInstance() {
|
||||
// return pluginRef.getConfigManager().getFishingTreasureConfig();
|
||||
// }
|
||||
//
|
||||
// private void loadShake(EntityType entityType) {
|
||||
// ConfigurationNode shakeTreasureNode = getUserRootNode().getNode(SHAKE, entityType.toString());
|
||||
//
|
||||
// if (shakeTreasureNode != null)
|
||||
// return;
|
||||
//
|
||||
// try {
|
||||
// for (ConfigurationNode treasureNode : shakeTreasureNode.getChildrenList()) {
|
||||
//
|
||||
// String treasureName = treasureNode.getString();
|
||||
// //Treasure Material Definition
|
||||
// Material treasureMaterial = Material.matchMaterial(treasureName.toUpperCase());
|
||||
//
|
||||
// if (treasureMaterial != null) {
|
||||
// ConfigurationNode currentTreasure = shakeTreasureNode.getNode(treasureName);
|
||||
//
|
||||
// //TODO: Rewrite the entire treasure system because it sucks
|
||||
//
|
||||
// /*
|
||||
// * TREASURE PARAMETERS
|
||||
// */
|
||||
// int amount = currentTreasure.getNode(AMOUNT).getInt();
|
||||
// int xp = currentTreasure.getNode(XP).getInt();
|
||||
// double dropChance = currentTreasure.getNode(DROP_CHANCE).getDouble();
|
||||
// int dropLevel = currentTreasure.getNode(DROP_LEVEL).getInt();
|
||||
// String customName = null;
|
||||
//
|
||||
// /*
|
||||
// * PARAMETER INIT
|
||||
// */
|
||||
//
|
||||
// ArrayList<String> dropsFrom = new ArrayList(currentTreasure.getNode(DROPS_FROM).getList(TypeToken.of(String.class)));
|
||||
//
|
||||
// //VALIDATE AMOUNT
|
||||
// if (amount <= 0) {
|
||||
// pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has an amount of 0 or below, is this intentional?");
|
||||
// pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// //VALIDATE XP
|
||||
// if (xp <= 0) {
|
||||
// pluginRef.getLogger().info("Excavation Treasure named " + treasureName + " in the config has xp set to 0 or below, is this intentional?");
|
||||
// xp = 0;
|
||||
// }
|
||||
//
|
||||
// //VALIDATE DROP CHANCE
|
||||
// if (dropChance <= 0) {
|
||||
// pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has a drop chance of 0 or below, is this intentional?");
|
||||
// pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// //VALIDATE DROP LEVEL
|
||||
// if (dropLevel < 0) {
|
||||
// pluginRef.getLogger().info("Excavation Treasure named " + treasureName + " in the config has a drop level below 0, is this intentional?");
|
||||
// dropLevel = 0;
|
||||
// }
|
||||
//
|
||||
// //VALIDATE DROP SOURCES
|
||||
// if (dropsFrom == null || dropsFrom.isEmpty()) {
|
||||
// pluginRef.getLogger().severe("Excavation Treasure named " + treasureName + " in the config has no drop targets, which would make it impossible to obtain, is this intentional?");
|
||||
// pluginRef.getLogger().severe("Skipping " + treasureName + " for being invalid");
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// /* OPTIONAL PARAMETERS */
|
||||
//
|
||||
// //Custom Name
|
||||
//
|
||||
// if (currentTreasure.getNode(CUSTOM_NAME) != null && !currentTreasure.getNode(CUSTOM_NAME).getString().equalsIgnoreCase("ChangeMe")) {
|
||||
// customName = currentTreasure.getNode(CUSTOM_NAME).getString();
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// * REGISTER TREASURE
|
||||
// */
|
||||
//
|
||||
// ShakeTreasure shakeTreasure = TreasureFactory.makeShakeTreasure(treasureMaterial, amount, xp, dropChance, dropLevel, customName, currentTreasure.getNode(LORE));
|
||||
//
|
||||
// /*
|
||||
// * Add to map
|
||||
// */
|
||||
// shakeMap.computeIfAbsent(entityType, k -> new ArrayList<>());
|
||||
//
|
||||
// shakeMap.get(entityType).add(shakeTreasure);
|
||||
//
|
||||
// } else {
|
||||
// pluginRef.getLogger().severe("Excavation Treasure Config - Material named " + treasureName + " does not match any known material.");
|
||||
// }
|
||||
// }
|
||||
// } catch (ObjectMappingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private void loadEnchantments() {
|
||||
// for (Rarity rarity : Rarity.values()) {
|
||||
// if (rarity == Rarity.RECORD) {
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// if (!fishingEnchantments.containsKey(rarity)) {
|
||||
// fishingEnchantments.put(rarity, (new ArrayList<>()));
|
||||
// }
|
||||
//
|
||||
// ConfigurationNode enchantmentSection = getUserRootNode().getNode(ENCHANTMENTS_RARITY, rarity.toString());
|
||||
//
|
||||
// if (enchantmentSection == null) {
|
||||
// pluginRef.getLogger().info("No enchantment information for fishing treasures, is this intentional?");
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// for (ConfigurationNode enchantmentNode : enchantmentSection.getChildrenList()) {
|
||||
//
|
||||
// String enchantmentName = enchantmentNode.getString();
|
||||
// int level = getIntValue(ENCHANTMENTS_RARITY, rarity.toString(), enchantmentName);
|
||||
// Enchantment enchantment = EnchantmentUtils.getByName(enchantmentName);
|
||||
//
|
||||
// if (enchantment == null) {
|
||||
// pluginRef.getLogger().severe("Skipping invalid enchantment in treasures.yml: " + enchantmentName);
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// fishingEnchantments.get(rarity).add(new EnchantmentTreasure(enchantment, level));
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<String> validateKeys() {
|
||||
// // Validate all the settings!
|
||||
// List<String> errorMessages = new ArrayList<>();
|
||||
// try {
|
||||
// for (String tier : getUserRootNode().getNode(ENCHANTMENT_DROP_RATES).getList(TypeToken.of(String.class))) {
|
||||
// /*double totalEnchantDropRate = 0;
|
||||
// double totalItemDropRate = 0;*/
|
||||
//
|
||||
// for (Rarity rarity : Rarity.values()) {
|
||||
// double enchantDropRate = getDoubleValue(ENCHANTMENT_DROP_RATES, tier, rarity.toString());
|
||||
// double itemDropRate = getDoubleValue(ITEM_DROP_RATES, tier, rarity.toString());
|
||||
//
|
||||
// if ((enchantDropRate < 0.0 || enchantDropRate > 100.0) && rarity != Rarity.RECORD) {
|
||||
// errorMessages.add("The enchant drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
//
|
||||
// //Bound Values
|
||||
// /*enchantDropRate = boundValues(enchantDropRate, 0.0D, 100.0D);*/
|
||||
// }
|
||||
//
|
||||
// if (itemDropRate < 0.0 || itemDropRate > 100.0) {
|
||||
// errorMessages.add("The item drop rate for " + tier + " items that are " + rarity.toString() + "should be between 0.0 and 100.0!");
|
||||
//
|
||||
// //Bound Values
|
||||
// /*itemDropRate = boundValues(itemDropRate, 0.0D, 100.0D);*/
|
||||
// }
|
||||
//
|
||||
// /*totalEnchantDropRate += enchantDropRate;
|
||||
// totalItemDropRate += itemDropRate;*/
|
||||
// }
|
||||
//
|
||||
// //TODO: Why does it matter what the total item/enchant drop rate is?
|
||||
//
|
||||
// /*if (totalEnchantDropRate < 0 || totalEnchantDropRate > 100.0) {
|
||||
// errorMessages.add("The total enchant drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
// }
|
||||
//
|
||||
// if (totalItemDropRate < 0 || totalItemDropRate > 100.0) {
|
||||
// errorMessages.add("The total item drop rate for " + tier + " should be between 0.0 and 100.0!");
|
||||
// }*/
|
||||
// }
|
||||
// } catch (ObjectMappingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// return errorMessages;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * The version of this config
|
||||
// *
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public double getConfigVersion() {
|
||||
// return 1;
|
||||
// }
|
||||
//
|
||||
// public boolean getInventoryStealEnabled() {
|
||||
// return hasNode(SHAKE, PLAYER, INVENTORY);
|
||||
// }
|
||||
//
|
||||
// public boolean getInventoryStealStacks() {
|
||||
// return getBooleanValue(SHAKE, PLAYER, INVENTORY, WHOLE_STACKS);
|
||||
// }
|
||||
//
|
||||
// public double getInventoryStealDropChance() {
|
||||
// return getDoubleValue(SHAKE, PLAYER, INVENTORY, DROP_CHANCE);
|
||||
// }
|
||||
//
|
||||
// public int getInventoryStealDropLevel() {
|
||||
// return getIntValue(SHAKE, PLAYER, INVENTORY, DROP_LEVEL);
|
||||
// }
|
||||
//
|
||||
// public double getItemDropRate(int tier, Rarity rarity) {
|
||||
// return getDoubleValue(ITEM_DROP_RATES, TIER + tier, rarity.toString());
|
||||
// }
|
||||
//
|
||||
// public double getEnchantmentDropRate(int tier, Rarity rarity) {
|
||||
// return getDoubleValue(ENCHANTMENT_DROP_RATES, TIER + tier, rarity.toString());
|
||||
// }
|
||||
//}
|
||||
|
@ -37,6 +37,7 @@ public class DynamicSettingsManager {
|
||||
/* Platform Ready Managers */
|
||||
private BonusDropManager bonusDropManager;
|
||||
private ExperienceManager experienceManager;
|
||||
private WorldBlackListManager worldBlackListManager;
|
||||
|
||||
/* Party Settings */
|
||||
private HashMap<Material, Integer> partyItemWeights;
|
||||
@ -79,6 +80,17 @@ public class DynamicSettingsManager {
|
||||
//Init Skill Behaviour Manager
|
||||
skillBehaviourManager = new SkillBehaviourManager(pluginRef);
|
||||
|
||||
initExperienceManager();
|
||||
|
||||
initWorldBlackList();
|
||||
}
|
||||
|
||||
private void initWorldBlackList() {
|
||||
worldBlackListManager = new WorldBlackListManager();
|
||||
worldBlackListManager.addBlackListedWorlds(pluginRef.getConfigManager().getConfigWorldBlacklist().getBlackListedWorlds());
|
||||
}
|
||||
|
||||
private void initExperienceManager() {
|
||||
experienceManager = new ExperienceManager(pluginRef);
|
||||
//Set the global XP val
|
||||
experienceManager.setGlobalXpMult(pluginRef.getConfigManager().getConfigExperience().getGlobalXPMultiplier());
|
||||
@ -173,4 +185,12 @@ public class DynamicSettingsManager {
|
||||
public SkillBehaviourManager getSkillBehaviourManager() {
|
||||
return skillBehaviourManager;
|
||||
}
|
||||
|
||||
public WorldBlackListManager getWorldBlackListManager() {
|
||||
return worldBlackListManager;
|
||||
}
|
||||
|
||||
public boolean isWorldBlacklisted(String worldName) {
|
||||
return getWorldBlackListManager().isWorldBlacklisted(worldName);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,66 @@
|
||||
package com.gmail.nossr50.core;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
/**
|
||||
* Performs various duties relating to black listed worlds
|
||||
*
|
||||
* A world is identified solely by its name
|
||||
* The blacklist is simply a hash set of world names
|
||||
*/
|
||||
public class WorldBlackListManager {
|
||||
private HashSet<String> blackListedWorlds;
|
||||
|
||||
public WorldBlackListManager() {
|
||||
this.blackListedWorlds = new HashSet<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a world to the blacklist
|
||||
* @param worldName target world's name
|
||||
*/
|
||||
public void addBlackListedWorld(String worldName) {
|
||||
blackListedWorlds.add(worldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a collection of world names to the black list
|
||||
* @param worldNames collection of target world names to black list
|
||||
*/
|
||||
public void addBlackListedWorlds(Collection<String> worldNames) {
|
||||
blackListedWorlds.addAll(worldNames);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a world is blacklisted
|
||||
* @param worldName target world's name
|
||||
* @return true if the world is blacklisted
|
||||
*/
|
||||
public boolean isWorldBlacklisted(String worldName) {
|
||||
return blackListedWorlds.contains(worldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hash set of blacklisted worlds
|
||||
* @return the blacklisted worlds
|
||||
*/
|
||||
public HashSet<String> getBlackListedWorlds() {
|
||||
return blackListedWorlds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the hash set of blacklisted worlds
|
||||
* @param blackListedWorlds replacement hashset
|
||||
*/
|
||||
public void setBlackListedWorlds(HashSet<String> blackListedWorlds) {
|
||||
this.blackListedWorlds = blackListedWorlds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear worlds from the blacklist
|
||||
*/
|
||||
public void clearBlackList() {
|
||||
this.blackListedWorlds.clear();
|
||||
}
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.datatypes.player;
|
||||
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainSource;
|
||||
@ -813,7 +812,7 @@ public class McMMOPlayer {
|
||||
|
||||
public void checkGodMode() {
|
||||
if (godMode && !Permissions.mcgod(player)
|
||||
|| godMode && WorldBlacklist.isWorldBlacklisted(player.getWorld())) {
|
||||
|| godMode && pluginRef.getDynamicSettingsManager().isWorldBlacklisted(player.getWorld().getName())) {
|
||||
toggleGodMode();
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode.Forbidden"));
|
||||
}
|
||||
|
209
src/main/java/com/gmail/nossr50/dumpster/AdvancedConfig.java
Normal file
209
src/main/java/com/gmail/nossr50/dumpster/AdvancedConfig.java
Normal file
@ -0,0 +1,209 @@
|
||||
//package com.gmail.nossr50.config;
|
||||
//
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//
|
||||
//@ConfigSerializable
|
||||
//public class AdvancedConfig extends ConfigValidated {
|
||||
//
|
||||
// public static final String SKILLS = "Skills";
|
||||
// public static final String GENERAL = "General";
|
||||
// public static final String ABILITY = "Ability";
|
||||
// public static final String LENGTH = "Length";
|
||||
// public static final String INCREASE_LEVEL = "IncreaseLevel";
|
||||
// public static final String ENCHANT_BUFF = "EnchantBuff";
|
||||
// public static final String ACROBATICS = "Acrobatics";
|
||||
// public static final String DODGE = "Dodge";
|
||||
// public static final String CHANCE = "Chance";
|
||||
// public static final String CHANCE_MAX = CHANCE + "Max";
|
||||
// public static final String BONUS = "Bonus";
|
||||
// public static final String MAX_BONUS_LEVEL = "Max" + BONUS + "Level";
|
||||
// public static final String MODIFIER = "Modifier";
|
||||
// public static final String DAMAGE_MODIFIER = "Damage" + MODIFIER;
|
||||
// public static final String DAMAGE_THRESHOLD = "DamageThreshold";
|
||||
// public static final String ALCHEMY = "Alchemy";
|
||||
// public static final String CATALYSIS = "Catalysis";
|
||||
// public static final String MIN_SPEED = "MinSpeed";
|
||||
// public static final String MAX_SPEED = "MaxSpeed";
|
||||
// public static final String ARCHERY = "Archery";
|
||||
// public static final String SKILL_SHOT = "SkillShot";
|
||||
// public static final String MULTIPLIER = "Multiplier";
|
||||
// public static final String RANK_DAMAGE_MULTIPLIER = "RankDamage" + MULTIPLIER;
|
||||
// public static final String BONUS_DAMAGE = BONUS + "Damage";
|
||||
// public static final String FORCE_MULTIPLIER = "Force" + MULTIPLIER;
|
||||
// public static final String AXES = "Axes";
|
||||
// public static final String STANDARD = "Standard";
|
||||
// public static final String RETRO_MODE = "RetroMode";
|
||||
// public static final String CAP_LEVEL = "CapLevel";
|
||||
// public static final String KNOCKBACK_MODIFIER = "Knockback" + MODIFIER;
|
||||
// public static final String PVP_MODIFIER = "PVP_" + MODIFIER;
|
||||
// public static final String PVE_MODIFIER = "PVE_" + MODIFIER;
|
||||
// public static final String FISHING = "Fishing";
|
||||
// public static final String MASTER_ANGLER = "MasterAngler";
|
||||
// public static final String BOAT_MODIFIER = "Boat" + MODIFIER;
|
||||
// public static final String BIOME_MODIFIER = "Biome" + MODIFIER;
|
||||
// public static final String XP = "XP";
|
||||
// public static final String VANILLA_XPMULTIPLIER = "Vanilla" + XP + MULTIPLIER;
|
||||
// public static final String RANK = "Rank_";
|
||||
// public static final String TAMING = "Taming";
|
||||
// public static final String CALL_OF_THE_WILD = "CallOfTheWild";
|
||||
// public static final String MIN_HORSE_JUMP_STRENGTH = "MinHorseJumpStrength";
|
||||
// public static final String MAX_HORSE_JUMP_STRENGTH = "MaxHorseJumpStrength";
|
||||
// public static final String SHOCK_PROOF = "ShockProof";
|
||||
// public static final String UNARMED = "Unarmed";
|
||||
// public static final String STARTING_LEVEL = "StartingLevel";
|
||||
// public static final String AXE_MASTERY = "AxeMastery";
|
||||
// public static final String CRITICAL_STRIKES = "CriticalStrikes";
|
||||
// public static final String GREATER_IMPACT = "GreaterImpact";
|
||||
// public static final String ARMOR_IMPACT = "ArmorImpact";
|
||||
// public static final String SKULL_SPLITTER = "SkullSplitter";
|
||||
// public static final String MAX_PERCENTAGE_DURABILITY_DAMAGE = "MaxPercentageDurabilityDamage";
|
||||
// public static final String SHAKE = "Shake";
|
||||
// public static final String MINING = "Mining";
|
||||
// public static final String BLAST_MINING = "BlastMining";
|
||||
// public static final String LEVELS = "Levels";
|
||||
// public static final String BLAST_DAMAGE_DECREASE = "BlastDamageDecrease";
|
||||
// public static final String ORE_BONUS = "Ore" + BONUS;
|
||||
// public static final String DEBRIS_REDUCTION = "DebrisReduction";
|
||||
// public static final String DROP_MULTIPLIER = "Drop" + MULTIPLIER;
|
||||
// public static final String BLAST_RADIUS = "BlastRadius";
|
||||
// public static final String REPAIR = "Repair";
|
||||
// public static final String REPAIR_MASTERY = "RepairMastery";
|
||||
// public static final String MAX_BONUS_PERCENTAGE = "Max" + BONUS + "Percentage";
|
||||
// public static final String ARCANE_FORGING = "ArcaneForging";
|
||||
// public static final String MAY_LOSE_ENCHANTS = "May_Lose_Enchants";
|
||||
// public static final String KEEP_ENCHANTS = "Keep_Enchants_";
|
||||
// public static final String DOWNGRADES = "Downgrades_";
|
||||
// public static final String ENABLED = "Enabled";
|
||||
// public static final String DOWNGRADES_ENABLED = DOWNGRADES + ENABLED;
|
||||
// public static final String SALVAGE = "Salvage";
|
||||
// public static final String ARCANE_SALVAGE = "ArcaneSalvage";
|
||||
// public static final String ENCHANT_DOWNGRADE_ENABLED = "EnchantDowngrade" + ENABLED;
|
||||
// public static final String ENCHANT_LOSS_ENABLED = "EnchantLoss" + ENABLED;
|
||||
// public static final String EXTRACT_FULL_ENCHANT = "ExtractFullEnchant";
|
||||
// public static final String EXTRACT_PARTIAL_ENCHANT = "ExtractPartialEnchant";
|
||||
// public static final String SMELTING = "Smelting";
|
||||
// public static final String FUEL_EFFICIENCY = "FuelEfficiency";
|
||||
// public static final String SWORDS = "Swords";
|
||||
// public static final String RUPTURE = "Rupture";
|
||||
// public static final String DAMAGE_PLAYER = "DamagePlayer";
|
||||
// public static final String DAMAGE_MOBS = "DamageMobs";
|
||||
// public static final String MAX_TICKS = "MaxTicks";
|
||||
// public static final String BASE_TICKS = "BaseTicks";
|
||||
// public static final String COUNTER_ATTACK = "CounterAttack";
|
||||
// public static final String SERRATED_STRIKES = "SerratedStrikes";
|
||||
// public static final String TICKS = "Ticks";
|
||||
// public static final String GORE = "Gore";
|
||||
// public static final String FAST_FOOD = "FastFood";
|
||||
// public static final String FAST_FOOD_SERVICE = FAST_FOOD + "Service";
|
||||
// public static final String PUMMEL = "Pummel";
|
||||
// public static final String THICK_FUR = "ThickFur";
|
||||
// public static final String SHARPENED_CLAWS = "SharpenedClaws";
|
||||
// public static final String DISARM = "Disarm";
|
||||
// public static final String ANTI_THEFT = "AntiTheft";
|
||||
// public static final String DAZE = "Daze";
|
||||
// public static final String MAX_DAMAGE = "MaxDamage";
|
||||
// public static final String ROLL = "Roll";
|
||||
// public static final String GRACEFUL_ROLL = "Graceful" + ROLL;
|
||||
// public static final String ARROW_DEFLECT = "ArrowDeflect";
|
||||
// public static final String IRON_GRIP = "IronGrip";
|
||||
// public static final String WOODCUTTING = "Woodcutting";
|
||||
// public static final String HARVEST_LUMBER = "HarvestLumber";
|
||||
// public static final String FEEDBACK = "Feedback";
|
||||
// public static final String SKILL_COMMAND = "SkillCommand";
|
||||
// public static final String BLANK_LINES_ABOVE_HEADER = "BlankLinesAboveHeader";
|
||||
// public static final String ACTION_BAR_NOTIFICATIONS = "ActionBarNotifications";
|
||||
// public static final String SEND_COPY_OF_MESSAGE_TO_CHAT = "SendCopyOfMessageToChat";
|
||||
// public static final String EVENTS = "Events";
|
||||
// public static final String SEND_TITLES = "SendTitles";
|
||||
// //private static AdvancedConfig instance;
|
||||
//
|
||||
// public AdvancedConfig() {
|
||||
// //super(mcMMO.getDataFolderPath().getAbsoluteFile(), "advanced.yml", true);
|
||||
// super("advanced", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * This grabs an instance of this config class from the Config Manager
|
||||
// * This method is deprecated and will be removed in the future
|
||||
// *
|
||||
// * @return the instance of this config
|
||||
// * @see mcMMO#getConfigManager()
|
||||
// * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static AdvancedConfig getInstance() {
|
||||
// return pluginRef.getConfigManager().getAdvancedConfig();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * The version of this config
|
||||
// *
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public double getConfigVersion() {
|
||||
// return 1;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<String> validateKeys() {
|
||||
// // Validate all the settings!
|
||||
// List<String> reason = new ArrayList<>();
|
||||
// return reason;
|
||||
// }
|
||||
//
|
||||
// /* GENERAL */
|
||||
//
|
||||
// /* Notification Settings */
|
||||
//
|
||||
// /* FISHING */
|
||||
// public double getShakeChance(int rank) {
|
||||
// return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank));
|
||||
// }
|
||||
//
|
||||
// public double getMasterAnglerBoatModifier() {
|
||||
// return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER);
|
||||
// }
|
||||
//
|
||||
// public double getMasterAnglerBiomeModifier() {
|
||||
// return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER);
|
||||
// }
|
||||
//
|
||||
// /* TAMING */
|
||||
// public double getGoreModifier() {
|
||||
// return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER);
|
||||
// }
|
||||
//
|
||||
// public double getFastFoodChance() {
|
||||
// return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE);
|
||||
// }
|
||||
//
|
||||
// public double getPummelChance() {
|
||||
// return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE);
|
||||
// }
|
||||
//
|
||||
// public double getThickFurModifier() {
|
||||
// return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER);
|
||||
// }
|
||||
//
|
||||
// public double getShockProofModifier() {
|
||||
// return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER);
|
||||
// }
|
||||
//
|
||||
// public double getSharpenedClawsBonus() {
|
||||
// return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS);
|
||||
// }
|
||||
//
|
||||
// public double getMinHorseJumpStrength() {
|
||||
// return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH);
|
||||
// }
|
||||
//
|
||||
// public double getMaxHorseJumpStrength() {
|
||||
// return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH);
|
||||
// }
|
||||
//
|
||||
//}
|
481
src/main/java/com/gmail/nossr50/dumpster/Config.java
Normal file
481
src/main/java/com/gmail/nossr50/dumpster/Config.java
Normal file
@ -0,0 +1,481 @@
|
||||
//package com.gmail.nossr50.config;
|
||||
//
|
||||
//import com.google.common.io.Files;
|
||||
//import com.google.common.reflect.TypeToken;
|
||||
//import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||
//import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
|
||||
//import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||
//import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
||||
//
|
||||
//import java.io.File;
|
||||
//import java.io.IOException;
|
||||
//import java.io.InputStream;
|
||||
//import java.nio.file.Path;
|
||||
//import java.nio.file.Paths;
|
||||
//import java.util.List;
|
||||
//
|
||||
///**
|
||||
// * Handles loading and cacheing configuration settings from a configurable compatible config file
|
||||
// */
|
||||
//public abstract class Config implements VersionedConfig {
|
||||
//
|
||||
// public static final String HOCON_FILE_EXTENSION = ".conf";
|
||||
// public final File DIRECTORY_DATA_FOLDER; //Directory that the file is in
|
||||
// public final String FILE_RELATIVE_PATH; //Relative Path to the file
|
||||
// protected final String DIRECTORY_DEFAULTS = "defaults";
|
||||
// /* SETTINGS */
|
||||
// //private static final String FILE_EXTENSION = ".conf"; //HOCON
|
||||
// private boolean mergeNewKeys; //Whether or not to merge keys found in the default config
|
||||
// private boolean removeOldKeys; //Whether or not to remove unused keys form the config
|
||||
//
|
||||
// /* PATH VARS */
|
||||
// private boolean copyDefaults; //Whether or not to copy the default config when first creating the file
|
||||
// private boolean generateDefaults; //Whether or not we use Configurate to generate a default file, if this is false we copy the file from the JAR
|
||||
// private String fileName; //The file name of the config
|
||||
//
|
||||
// /* LOADERS */
|
||||
// private HoconConfigurationLoader defaultCopyLoader;
|
||||
// private HoconConfigurationLoader userCopyLoader;
|
||||
//
|
||||
// //private ConfigurationLoader<CommentedCommentedConfigurationNode> defaultCopyLoader;
|
||||
// //private ConfigurationLoader<CommentedCommentedConfigurationNode> userCopyLoader;
|
||||
//
|
||||
// /* CONFIG FILES */
|
||||
//
|
||||
// private File resourceConfigCopy; //Copy of the default config from the JAR (file is copied so that admins can easily compare to defaults)
|
||||
// private File resourceUserCopy; //File in the /$MCMMO_ROOT/mcMMO/ directory that may contain user edited settings
|
||||
//
|
||||
// /* ROOT NODES */
|
||||
//
|
||||
// private CommentedConfigurationNode userRootNode = null;
|
||||
// private CommentedConfigurationNode defaultRootNode = null;
|
||||
//
|
||||
// /* CONFIG MANAGER */
|
||||
// //private ConfigurationLoader<CommentedCommentedConfigurationNode> configManager;
|
||||
//
|
||||
// /*public Config(String pathToParentFolder, String relativePath, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
// //TODO: Check if this works...
|
||||
// this(new File(pathToParentFolder), relativePath, mergeNewKeys, copyDefaults, removeOldKeys);
|
||||
// System.out.println("mcMMO Debug: Don't forget to check if loading config file by string instead of File works...");
|
||||
// }*/
|
||||
//
|
||||
// public Config(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
// mkdirDefaults(); // Make our default config dir
|
||||
//
|
||||
// /*
|
||||
// * These must be at the top
|
||||
// */
|
||||
// this.fileName = fileName;
|
||||
// this.generateDefaults = generateDefaults;
|
||||
// this.copyDefaults = copyDefaults;
|
||||
// this.mergeNewKeys = mergeNewKeys; //Whether or not we add new keys when they are found
|
||||
// this.removeOldKeys = removeOldKeys;
|
||||
//
|
||||
// DIRECTORY_DATA_FOLDER = pathToParentFolder; //Data Folder for our plugin
|
||||
// FILE_RELATIVE_PATH = relativePath + fileName + HOCON_FILE_EXTENSION; //Relative path to config from a parent folder
|
||||
// }
|
||||
//
|
||||
// public void initFullConfig() {
|
||||
// //Attempt IO Operations
|
||||
// try {
|
||||
// //Makes sure we have valid Files corresponding to this config
|
||||
// initConfigFiles();
|
||||
//
|
||||
// //Init MainConfig Loaders
|
||||
// initConfigLoaders();
|
||||
//
|
||||
// //Load MainConfig Nodes
|
||||
// loadConfig();
|
||||
//
|
||||
// //Attempt to update user file, and then load it into memory
|
||||
// readConfig();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// //Cleanup and backup registers
|
||||
//// registerUnload();
|
||||
// registerFileBackup();
|
||||
// }
|
||||
//
|
||||
//// /**
|
||||
//// * Registers with the config managers unloader
|
||||
//// * The unloader runs when the plugin gets disabled which cleans up registries to make reloading safe
|
||||
//// */
|
||||
//// private void registerUnload() {
|
||||
//// mcMMO.getConfigManager().registerUnloadable(this);
|
||||
//// }
|
||||
//
|
||||
// /**
|
||||
// * Registers with the config managers file list
|
||||
// * Used for backing up configs with our zip library
|
||||
// */
|
||||
// private void registerFileBackup() {
|
||||
// pluginRef.getConfigManager().registerUserFile(getUserConfigFile());
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Initializes the default copy File and the user config File
|
||||
// *
|
||||
// * @throws IOException
|
||||
// */
|
||||
// private void initConfigFiles() throws IOException {
|
||||
// //Init our config copy
|
||||
// resourceConfigCopy = initDefaultConfig();
|
||||
//
|
||||
// //Init the user file
|
||||
// resourceUserCopy = initUserConfig();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Loads the root node for the default config File and user config File
|
||||
// */
|
||||
// private void loadConfig() {
|
||||
// try {
|
||||
// final CommentedConfigurationNode defaultConfig = this.defaultCopyLoader.load();
|
||||
// defaultRootNode = defaultConfig;
|
||||
//
|
||||
// final CommentedConfigurationNode userConfig = this.userCopyLoader.load();
|
||||
// userRootNode = userConfig;
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Initializes the Configuration Loaders for this config
|
||||
// */
|
||||
// private void initConfigLoaders() {
|
||||
// this.defaultCopyLoader = HoconConfigurationLoader.builder().setPath(resourceConfigCopy.toPath()).build();
|
||||
// this.userCopyLoader = HoconConfigurationLoader.builder().setPath(resourceUserCopy.toPath()).build();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Copies a new file from the JAR to the defaults directory and uses that new file to initialize our resourceConfigCopy
|
||||
// *
|
||||
// * @throws IOException
|
||||
// * @see Config#resourceConfigCopy
|
||||
// */
|
||||
// private File initDefaultConfig() throws IOException {
|
||||
// if (generateDefaults) {
|
||||
// return generateDefaultFile();
|
||||
// } else
|
||||
// return copyDefaultFromJar(getDefaultConfigCopyRelativePath(), true);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Generates a default config file using the Configurate library, makes use of @Setting and @ConfigSerializable annotations in the config file
|
||||
// * Assigns the default root node to the newly loaded default config if successful
|
||||
// *
|
||||
// * @return the File for the newly created config
|
||||
// */
|
||||
// private File generateDefaultFile() {
|
||||
// pluginRef.getLogger().info("Attempting to create a default config for " + fileName);
|
||||
//
|
||||
// //Not sure if this will work properly...
|
||||
// Path potentialFile = Paths.get(getDefaultConfigCopyRelativePath());
|
||||
// ConfigurationLoader<CommentedConfigurationNode> generation_loader
|
||||
// = HoconConfigurationLoader.builder().setPath(potentialFile).build();
|
||||
//
|
||||
// try {
|
||||
// pluginRef.getLogger().info("Config File Full Path: " + getDefaultConfigFile().getAbsolutePath());
|
||||
// //Delete any existing default config
|
||||
// if (getDefaultConfigFile().exists())
|
||||
// getDefaultConfigFile().delete();
|
||||
//
|
||||
// //Make new file
|
||||
// getDefaultConfigFile().createNewFile();
|
||||
//
|
||||
// //Load the config
|
||||
// defaultRootNode = generation_loader.load();
|
||||
//
|
||||
// //Save to a new file
|
||||
// generation_loader.save(defaultRootNode);
|
||||
//
|
||||
// pluginRef.getLogger().info("Generated a default file for " + fileName);
|
||||
// } catch (IOException e) {
|
||||
// pluginRef.getLogger().severe("Error when trying to generate a default configuration file for " + getDefaultConfigCopyRelativePath());
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// //Return the default file
|
||||
// return getDefaultConfigFile();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Attemps to load the config file if it exists, if it doesn't it copies a new one from within the JAR
|
||||
// *
|
||||
// * @return user config File
|
||||
// * @throws IOException
|
||||
// * @see Config#resourceUserCopy
|
||||
// */
|
||||
// private File initUserConfig() throws IOException {
|
||||
// File userCopy = new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH); //Load the user file;
|
||||
//
|
||||
// if (userCopy.exists()) {
|
||||
// // Yay
|
||||
// return userCopy;
|
||||
// } else {
|
||||
// //If it's gone we copy default files
|
||||
// //Note that we don't copy the values from the default copy put in /defaults/ that file exists only as a reference to admins and is unreliable
|
||||
// if (copyDefaults)
|
||||
// return copyDefaultFromJar(FILE_RELATIVE_PATH, false);
|
||||
// else {
|
||||
// //Make a new empty file
|
||||
// userCopy.createNewFile();
|
||||
// return userCopy;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Gets the File representation of the this users config
|
||||
// *
|
||||
// * @return the users config File
|
||||
// */
|
||||
// public File getUserConfigFile() {
|
||||
// return new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Used to make a new config file at a specified relative output path inside the data directory by copying the matching file found in that same relative path within the JAR
|
||||
// *
|
||||
// * @param relativeOutputPath the path to the output file
|
||||
// * @param deleteOld whether or not to delete the existing output file on disk
|
||||
// * @return a copy of the default config within the JAR
|
||||
// * @throws IOException
|
||||
// */
|
||||
// private File copyDefaultFromJar(String relativeOutputPath, boolean deleteOld) throws IOException {
|
||||
// /*
|
||||
// * Gen a Default config from inside the JAR
|
||||
// */
|
||||
// pluginRef.getLogger().info("Preparing to copy internal resource file (in JAR) - " + FILE_RELATIVE_PATH);
|
||||
// //InputStream inputStream = McmmoCore.getResource(FILE_RELATIVE_PATH);
|
||||
// InputStream inputStream = pluginRef.getResource(FILE_RELATIVE_PATH);
|
||||
//
|
||||
// byte[] buffer = new byte[inputStream.available()];
|
||||
// inputStream.read(buffer);
|
||||
//
|
||||
// //This is a copy of the default file, which we will overwrite every time mcMMO loads
|
||||
// File targetFile = new File(DIRECTORY_DATA_FOLDER, relativeOutputPath);
|
||||
//
|
||||
// //Wipe old default file on disk
|
||||
// if (targetFile.exists() && deleteOld) {
|
||||
// pluginRef.getLogger().info("Updating file " + relativeOutputPath);
|
||||
// targetFile.delete(); //Necessary?
|
||||
// }
|
||||
//
|
||||
// if (!targetFile.exists()) {
|
||||
// targetFile.getParentFile().mkdirs();
|
||||
// targetFile.createNewFile(); //New File Boys
|
||||
// }
|
||||
//
|
||||
// Files.write(buffer, targetFile);
|
||||
// pluginRef.getLogger().info("Created config file - " + relativeOutputPath);
|
||||
//
|
||||
// inputStream.close(); //Close the input stream
|
||||
//
|
||||
// return targetFile;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * The path to the defaults directory
|
||||
// *
|
||||
// * @return the path to the defaults directory
|
||||
// */
|
||||
// private String getDefaultConfigCopyRelativePath() {
|
||||
// return getDefaultConfigFile().getPath();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs the File representation of the default config, which is stored on disk in a defaults folder
|
||||
// * this file will be overwritten every time mcMMO starts to keep it up to date.
|
||||
// *
|
||||
// * @return the copy of the default config file, stored in the defaults directory
|
||||
// */
|
||||
// private File getDefaultConfigFile() {
|
||||
// return new File(ConfigConstants.getDefaultsFolder(), FILE_RELATIVE_PATH);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Creates the defaults directory
|
||||
// */
|
||||
// private void mkdirDefaults() {
|
||||
// ConfigConstants.makeAllConfigDirectories();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Configs are versioned based on when they had significant changes to keys
|
||||
// *
|
||||
// * @return current MainConfig Version String
|
||||
// */
|
||||
// public String getVersion() {
|
||||
// return String.valueOf(getConfigVersion());
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Attempts to read the loaded config file
|
||||
// * MainConfig will have any necessary updates applied
|
||||
// * MainConfig will be compared to the default config to see if it is missing any nodes
|
||||
// * MainConfig will have any missing nodes inserted with their default value
|
||||
// */
|
||||
// public void readConfig() {
|
||||
// pluginRef.getLogger().info("Attempting to read " + FILE_RELATIVE_PATH + ".");
|
||||
//
|
||||
// int version = this.userRootNode.getNode("ConfigVersion").getInt();
|
||||
// pluginRef.getLogger().info(FILE_RELATIVE_PATH + " version is " + version);
|
||||
//
|
||||
// //Update our config
|
||||
// updateConfig();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Compares the users config file to the default and adds any missing nodes and applies any necessary updates
|
||||
// */
|
||||
// private void updateConfig() {
|
||||
// pluginRef.getLogger().info(defaultRootNode.getChildrenMap().size() + " items in default children map");
|
||||
// pluginRef.getLogger().info(userRootNode.getChildrenMap().size() + " items in default root map");
|
||||
//
|
||||
// // Merge Values from default
|
||||
// if (mergeNewKeys)
|
||||
// userRootNode = userRootNode.mergeValuesFrom(defaultRootNode);
|
||||
//
|
||||
// removeOldKeys();
|
||||
//
|
||||
// // Update config version
|
||||
// updateConfigVersion();
|
||||
//
|
||||
// //Attempt to save
|
||||
// try {
|
||||
// saveUserCopy();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Finds any keys in the users config that are not present in the default config and removes them
|
||||
// */
|
||||
// //TODO: Finish this
|
||||
// private void removeOldKeys() {
|
||||
// if (!removeOldKeys)
|
||||
// return;
|
||||
//
|
||||
// for (CommentedConfigurationNode CommentedConfigurationNode : defaultRootNode.getChildrenList()) {
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Saves the current state information of the config to the users copy (which they may edit)
|
||||
// *
|
||||
// * @throws IOException
|
||||
// */
|
||||
// private void saveUserCopy() throws IOException {
|
||||
// pluginRef.getLogger().info("Saving new node");
|
||||
// userCopyLoader.save(userRootNode);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Performs any necessary operations to update this config
|
||||
// */
|
||||
// private void updateConfigVersion() {
|
||||
// // Set a version for our config
|
||||
// this.userRootNode.getNode("ConfigVersion").setValue(getConfigVersion());
|
||||
// pluginRef.getLogger().info("Updated config to [" + getConfigVersion() + "] - " + FILE_RELATIVE_PATH);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns the root node of this config
|
||||
// *
|
||||
// * @return the root node of this config
|
||||
// */
|
||||
// protected CommentedConfigurationNode getUserRootNode() {
|
||||
// return userRootNode;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Gets an int from the config and casts it to short before returning
|
||||
// *
|
||||
// * @param path the path to the int
|
||||
// * @return the value of the int after being cast to short at the node, null references will zero initialize
|
||||
// */
|
||||
// public short getShortValue(String... path) {
|
||||
// return (short) userRootNode.getNode(path).getInt();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs an int from the specified node
|
||||
// *
|
||||
// * @param path
|
||||
// * @return the int from the node, null references will zero initialize
|
||||
// */
|
||||
// public int getIntValue(String... path) {
|
||||
// return userRootNode.getNode(path).getInt();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs a double from the specified node
|
||||
// *
|
||||
// * @param path
|
||||
// * @return the double from the node, null references will zero initialize
|
||||
// */
|
||||
// public double getDoubleValue(String... path) {
|
||||
// return userRootNode.getNode(path).getDouble();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs a long from the specified node
|
||||
// *
|
||||
// * @param path
|
||||
// * @return the long from the node, null references will zero initialize
|
||||
// */
|
||||
// public long getLongValue(String... path) {
|
||||
// return userRootNode.getNode(path).getLong();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs a boolean from the specified node
|
||||
// *
|
||||
// * @param path
|
||||
// * @return the boolean from the node, null references will zero initialize
|
||||
// */
|
||||
// public boolean getBooleanValue(String... path) {
|
||||
// return userRootNode.getNode(path).getBoolean();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Grabs a string from the specified node
|
||||
// *
|
||||
// * @param path
|
||||
// * @return the string from the node, null references will zero initialize
|
||||
// */
|
||||
// public String getStringValue(String... path) {
|
||||
// return userRootNode.getNode(path).getString();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Checks to see if a node exists in the user's config file
|
||||
// *
|
||||
// * @param path path to the node
|
||||
// * @return true if the node exists
|
||||
// */
|
||||
// public boolean hasNode(String... path) {
|
||||
// return (userRootNode.getNode(path) != null);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Returns the children of a specific node
|
||||
// *
|
||||
// * @param path the path to the parent node
|
||||
// * @return the list of children for the target parent node
|
||||
// */
|
||||
// public List<? extends CommentedConfigurationNode> getChildren(String... path) {
|
||||
// return userRootNode.getNode(path).getChildrenList();
|
||||
// }
|
||||
//
|
||||
// public List<String> getListFromNode(String... path) throws ObjectMappingException {
|
||||
// return userRootNode.getNode(path).getList(TypeToken.of(String.class));
|
||||
// }
|
||||
//}
|
@ -0,0 +1,20 @@
|
||||
//package com.gmail.nossr50.config;
|
||||
//
|
||||
//
|
||||
//import java.io.File;
|
||||
//
|
||||
///**
|
||||
// * This class is used for config files that validate their entries
|
||||
// */
|
||||
//public abstract class ConfigValidated extends Config implements UnsafeValueValidation {
|
||||
// /**
|
||||
// * @param pathToParentFolder File for the "parent" folder on disk
|
||||
// * @param relativePath Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
|
||||
// * @param mergeNewKeys if true, the users config will add keys found in the internal file that are missing from the users file during load
|
||||
// * @param copyDefaults if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
|
||||
// */
|
||||
// public ConfigValidated(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
|
||||
// super(fileName, pathToParentFolder, relativePath, generateDefaults, mergeNewKeys, copyDefaults, removeOldKeys);
|
||||
// validateEntries();
|
||||
// }
|
||||
//}
|
269
src/main/java/com/gmail/nossr50/dumpster/MainConfig.java
Normal file
269
src/main/java/com/gmail/nossr50/dumpster/MainConfig.java
Normal file
@ -0,0 +1,269 @@
|
||||
//package com.gmail.nossr50.config;
|
||||
//
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//import com.gmail.nossr50.util.StringUtils;
|
||||
//import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
//import org.bukkit.Material;
|
||||
//import org.bukkit.entity.EntityType;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//
|
||||
//@ConfigSerializable
|
||||
//public class MainConfig extends ConfigValidated {
|
||||
//
|
||||
// public static final String METRICS = "Metrics";
|
||||
// public static final String BSTATS = "bstats";
|
||||
// public static final String GENERAL = "General";
|
||||
// public static final String RETRO_MODE = "RetroMode";
|
||||
// public static final String ENABLED = "Enabled";
|
||||
// public static final String LOCALE = "LocaleManager";
|
||||
// public static final String EN_US = "en_us";
|
||||
// public static final String SHOW_PROFILE_LOADED = "Show_Profile_Loaded";
|
||||
// public static final String DONATE_MESSAGE = "Donate_Message";
|
||||
// public static final String MCMMO = "mcmmo";
|
||||
// public static final String DATABASE_PREFIX = MCMMO + "_";
|
||||
// public static final String COMMANDS = "Commands";
|
||||
// public static final String SAVE_INTERVAL = "Save_Interval";
|
||||
// public static final String STATS = "Stats";
|
||||
// public static final String STATS_TRACKING = STATS + "_Tracking";
|
||||
// public static final String UPDATE_CHECK = "Update_Check";
|
||||
// public static final String PREFER_BETA = "Prefer_Beta";
|
||||
// public static final String VERBOSE_LOGGING = "Verbose_Logging";
|
||||
// public static final String PARTYCHAT = "partychat";
|
||||
// public static final String CHAT_PREFIX_FORMAT = "Chat_Prefix_Format";
|
||||
// public static final String NAME = "Name";
|
||||
// public static final String GOLD_LEADER_NAME = "Gold_Leader_" + NAME;
|
||||
// public static final String USE_DISPLAY_NAMES = "Use_Display_" + NAME + "s";
|
||||
// public static final String ALLY = "_Ally";
|
||||
// public static final String ADMINCHAT = "adminchat";
|
||||
// public static final String GENERIC = "Generic";
|
||||
// public static final String MATCH_OFFLINE_PLAYERS = "Match_OfflinePlayers";
|
||||
// public static final String DATABASE = "Database";
|
||||
// public static final String COOLDOWN = "Cooldown";
|
||||
// public static final String PLAYER_COOLDOWN = "Player_" + COOLDOWN;
|
||||
// public static final String LEVEL_UP = "LevelUp_";
|
||||
// public static final String SOUND = "Sound";
|
||||
// public static final String LEVEL_UP_SOUNDS = "LevelUp_Sounds";
|
||||
// public static final String REFRESH_CHUNKS = "Refresh_Chunks";
|
||||
// public static final String MOB_HEALTHBAR = "Mob_Healthbar";
|
||||
// public static final String DISPLAY_TYPE = "Display_Type";
|
||||
// public static final String HEARTS = "HEARTS";
|
||||
// public static final String DISPLAY_TIME = "Display_Time";
|
||||
// public static final String SCOREBOARD = "ConfigScoreboard";
|
||||
// public static final String USE_SCOREBOARDS = "UseScoreboards";
|
||||
// public static final String POWER = "Power_";
|
||||
// public static final String POWER_LEVEL_TAGS = POWER + "Level_Tags";
|
||||
// public static final String KEEP = "Keep";
|
||||
// public static final String ALLOW_KEEP = "Allow_" + KEEP;
|
||||
// public static final String TIPS_AMOUNT = "Tips_Amount";
|
||||
// public static final String SHOW_STATS_AFTER_LOGIN = "Show_" + STATS + "_After_Login";
|
||||
// public static final String RAINBOWS = "Rainbows";
|
||||
// public static final String ABILITY_NAMES = "Ability_" + NAME + "s";
|
||||
// public static final String TYPES = "Types";
|
||||
// public static final String RANK = "Rank";
|
||||
// public static final String PRINT = "Print";
|
||||
// public static final String BOARD = "Board";
|
||||
// public static final String TOP = "Top";
|
||||
// public static final String INSPECT = "Inspect";
|
||||
// public static final String SKILL = "Skill";
|
||||
// public static final String TIME = "Time";
|
||||
// public static final String PURGING = "_Purging";
|
||||
// public static final String PURGE_INTERVAL = "Purge_Interval";
|
||||
// public static final String OLD_USER_CUTOFF = "Old_User_Cutoff";
|
||||
// public static final String BACKUPS = "Backups";
|
||||
// public static final String KEEP_LAST_24_HOURS = KEEP + ".Last_24_Hours";
|
||||
// public static final String DAILY_LAST_WEEK = "Daily_Last_Week";
|
||||
// public static final String WEEKLY_PAST_MONTHS = "Weekly_Past_Months";
|
||||
// public static final String MY_SQL = "MySQL";
|
||||
// public static final String TABLE_PREFIX = "TablePrefix";
|
||||
// public static final String USER_NAME = "User_" + NAME;
|
||||
// public static final String SERVER = "Server";
|
||||
// public static final String PORT = "Port";
|
||||
// public static final String ADDRESS = "Address";
|
||||
// public static final String LOCALHOST = "localhost";
|
||||
// public static final String USER_PASSWORD = "User_Password";
|
||||
// public static final String MAX_CONNECTIONS = "MaxConnections";
|
||||
// public static final String MAX_POOL_SIZE = "MaxPoolSize";
|
||||
// public static final String SSL = "SSL";
|
||||
// public static final String HARDCORE = "Hardcore";
|
||||
// public static final String DEATH_STAT_LOSS = "Death_Stat_Loss";
|
||||
// public static final String PENALTY_PERCENTAGE = "Penalty_Percentage";
|
||||
// public static final String LEVEL_THRESHOLD = "Level_Threshold";
|
||||
// public static final String VAMPIRISM = "Vampirism";
|
||||
// public static final String LEECH_PERCENTAGE = "Leech_Percentage";
|
||||
// public static final String ITEMS = "Items";
|
||||
// public static final String CHIMAERA_WING = "Chimaera_Wing";
|
||||
// public static final String USE_COST = "Use_Cost";
|
||||
// public static final String RECIPE_COST = "Recipe_Cost";
|
||||
// public static final String ITEM = "Item_";
|
||||
// public static final String FEATHER = "Feather";
|
||||
// public static final String PREVENT = "Prevent_";
|
||||
// public static final String PREVENT_USE_UNDERGROUND = PREVENT + "Use_Underground";
|
||||
// public static final String USE_BED_SPAWN = "Use_Bed_Spawn";
|
||||
// public static final String WARMUP = "Warmup";
|
||||
// public static final String RECENTLY_HURT = "RecentlyHurt_";
|
||||
// public static final String PARTICLES = "Particles";
|
||||
// public static final String ACTIVATION = "Activation";
|
||||
// public static final String ABILITY_ACTIVATION = "Ability_" + ACTIVATION;
|
||||
// public static final String ABILITY_DEACTIVATION = "Ability_Deactivation";
|
||||
// public static final String BLEED = "Bleed";
|
||||
// public static final String DODGE = "Dodge";
|
||||
// public static final String FLUX = "Flux";
|
||||
// public static final String GREATER_IMPACT = "Greater_Impact";
|
||||
// public static final String CALL_OF_THE_WILD = "Call_of_the_Wild";
|
||||
// public static final String TIER = "Tier";
|
||||
// public static final String LARGE_FIREWORKS = "LargeFireworks";
|
||||
// public static final String PARTY = "Party";
|
||||
// public static final String FRIENDLY_FIRE = "FriendlyFire";
|
||||
// public static final String MAX_SIZE = "MaxSize";
|
||||
// public static final String AUTO_KICK_INTERVAL = "AutoKick_Interval";
|
||||
// public static final String OLD_PARTY_MEMBER_CUTOFF = "Old_Party_Member_Cutoff";
|
||||
// public static final String SHARING = "Sharing";
|
||||
// public static final String SHARING_EXP_SHARE_BONUS_BASE = SHARING + "ExpShare_bonus_base";
|
||||
// public static final String EXP_SHARE_BONUS_INCREASE = "ExpShare_bonus_increase";
|
||||
// public static final String EXP_SHARE_BONUS_CAP = "ExpShare_bonus_cap";
|
||||
// public static final String RANGE = "Range";
|
||||
// public static final String LEVELING = "Leveling";
|
||||
// public static final String LEVEL_CAP = "Level_Cap";
|
||||
// public static final String XP_CURVE_MODIFIER = "Xp_Curve_Modifier";
|
||||
// public static final String NEAR_MEMBERS_NEEDED = "Near_Members_Needed";
|
||||
// public static final String INFORM_ALL_PARTY_MEMBERS_ON_LEVEL_UP = "Inform_All_Party_Members_On_LevelUp";
|
||||
// public static final String UNLOCK_LEVEL = "_UnlockLevel";
|
||||
// public static final String PTP = "ptp";
|
||||
// public static final String ACCEPT_REQUIRED = "Accept_Required";
|
||||
// public static final String REQUEST_TIMEOUT = "Request_Timeout";
|
||||
// public static final String WORLD_BASED_PERMISSIONS = "World_Based_Permissions";
|
||||
// public static final String INSPECT1 = "inspect";
|
||||
// public static final String MAX_DISTANCE = "Max_Distance";
|
||||
// public static final String SKILLS = "Skills";
|
||||
// public static final String URL_LINKS = "URL_Links";
|
||||
// public static final String ABILITIES = "Abilities";
|
||||
// public static final String MESSAGES = "Messages";
|
||||
// public static final String ONLY_ACTIVATE_WHEN_SNEAKING = "Only_Activate_When_Sneaking";
|
||||
// public static final String LEVEL_GATE_ABILITIES = "Level_Gate_Abilities";
|
||||
// public static final String COOLDOWNS = "Cooldowns";
|
||||
// public static final String MAX_SECONDS = "Max_Seconds";
|
||||
// public static final String TOOLS = "Tools";
|
||||
// public static final String DURABILITY_LOSS = "Durability_Loss";
|
||||
// public static final String LIMITS = "Limits";
|
||||
// public static final String TREE_FELLER = "Tree_Feller_";
|
||||
// public static final String TREE_FELLER_THRESHOLD = TREE_FELLER + "Threshold";
|
||||
// public static final String DOUBLE_DROPS = "Double_Drops";
|
||||
// public static final String AXES = "Axes";
|
||||
// public static final String TRUNCATE = "Truncate";
|
||||
// public static final String FOR_PVP = "_For_PVP";
|
||||
// public static final String FOR_PVE = "_For_PVE";
|
||||
// public static final String ACROBATICS = "Acrobatics";
|
||||
// public static final String PREVENT_AFK = PREVENT + "AFK_";
|
||||
// public static final String WOODCUTTING = "Woodcutting";
|
||||
// public static final String SOUNDS = "Sounds";
|
||||
// public static final String MAX_TRIES_AT_SAME_LOCATION = "Max_Tries_At_Same_Location";
|
||||
// public static final String HERBALISM = "Herbalism";
|
||||
// public static final String TAMING = "Taming";
|
||||
// public static final String CALL_OF_THE_WILD1 = "Call_Of_The_Wild";
|
||||
// public static final String SUMMON_AMOUNT = "Summon_Amount";
|
||||
// public static final String SUMMON_LENGTH = "Summon_Length";
|
||||
// public static final String SUMMON_MAX_AMOUNT = "Summon_Max_Amount";
|
||||
// public static final String AMOUNT = "Amount";
|
||||
// public static final String MATERIAL = "Material";
|
||||
// public static final String REPAIR = "Repair";
|
||||
// public static final String CONFIRM_REQUIRED = "Confirm_Required";
|
||||
// public static final String ANVIL = "Anvil_";
|
||||
// public static final String ANVIL_MATERIAL = ANVIL + "Material";
|
||||
// public static final String IRON_BLOCK = "IRON_BLOCK";
|
||||
// public static final String ANVIL_USE = ANVIL + "Use_";
|
||||
// public static final String ANVIL_PLACED = ANVIL + "Placed_";
|
||||
// public static final String SALVAGE = "Salvage";
|
||||
// public static final String UNARMED = "Unarmed";
|
||||
// public static final String BLOCK_CRACKER = "Block_Cracker";
|
||||
// public static final String SMOOTH_BRICK_TO_CRACKED_BRICK = "SmoothBrick_To_CrackedBrick";
|
||||
// public static final String PICKUP_DISABLED_FULL_INVENTORY = "Pickup_Disabled_Full_Inventory";
|
||||
// public static final String AS = "_As_";
|
||||
// public static final String MINING = "Mining";
|
||||
// public static final String DETONATOR = "Detonator_";
|
||||
// public static final String FLINT_AND_STEEL = "FLINT_AND_STEEL";
|
||||
// public static final String FISHING = "Fishing";
|
||||
// public static final String LURE_MODIFIER = "Lure_Modifier";
|
||||
// public static final String EXTRA_FISH = "Extra_Fish";
|
||||
// public static final String OVERRIDE_VANILLA_TREASURES = "Override_Vanilla_Treasures";
|
||||
// public static final String DROPS = "Drops_";
|
||||
// public static final String ALCHEMY = "Alchemy";
|
||||
// public static final String PREVENT_HOPPER_TRANSFER_BOTTLES = PREVENT + "Hopper_Transfer_Bottles";
|
||||
// public static final String PREVENT_HOPPER_TRANSFER_INGREDIENTS = PREVENT + "Hopper_Transfer_Ingredients";
|
||||
// public static final String FOR_HOPPERS = "_for_Hoppers";
|
||||
// public static final String XP_AFTER_TELEPORT = "XP_After_Teleport_";
|
||||
// public static final String LIGHTNING = "_Lightning";
|
||||
// public static final String GOLD_BLOCK = "GOLD_BLOCK";
|
||||
// public static final String PICKAXE = "_Pickaxe";
|
||||
// public static final String EXP_SHARE_BONUS_BASE = "ExpShare_bonus_base";
|
||||
//
|
||||
// public MainConfig() {
|
||||
// //super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "config.yml", true);
|
||||
// super("main", pluginRef.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * This grabs an instance of this config class from the Config Manager
|
||||
// * This method is deprecated and will be removed in the future
|
||||
// *
|
||||
// * @return the instance of this config
|
||||
// * @see mcMMO#getConfigManager()
|
||||
// * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
|
||||
// */
|
||||
// @Deprecated
|
||||
// public static MainConfig getInstance() {
|
||||
// return pluginRef.getConfigManager().getMainConfig();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * The version of this config
|
||||
// *
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public double getConfigVersion() {
|
||||
// return 1;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<String> validateKeys() {
|
||||
// // Validate all the settings!
|
||||
// List<String> reason = new ArrayList<>();
|
||||
// return reason;
|
||||
// }
|
||||
//
|
||||
// public boolean getPreventHopperTransferIngredients() {
|
||||
// return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_INGREDIENTS);
|
||||
// }
|
||||
//
|
||||
// public boolean getPreventHopperTransferBottles() {
|
||||
// return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_BOTTLES);
|
||||
// }
|
||||
//
|
||||
// /* Taming */
|
||||
// public Material getTamingCOTWMaterial(EntityType type) {
|
||||
// return Material.matchMaterial(getStringValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + MATERIAL));
|
||||
// }
|
||||
//
|
||||
// public int getTamingCOTWCost(EntityType type) {
|
||||
// return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), ITEM + AMOUNT);
|
||||
// }
|
||||
//
|
||||
// public int getTamingCOTWAmount(EntityType type) {
|
||||
// return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_AMOUNT);
|
||||
// }
|
||||
//
|
||||
// public int getTamingCOTWLength(EntityType type) {
|
||||
// return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_LENGTH);
|
||||
// }
|
||||
//
|
||||
// public int getTamingCOTWMaxAmount(EntityType type) {
|
||||
// return getIntValue(SKILLS, TAMING, CALL_OF_THE_WILD1, StringUtils.getPrettyEntityTypeString(type), SUMMON_MAX_AMOUNT);
|
||||
// }
|
||||
//
|
||||
// public double getTamingCOTWRange() {
|
||||
// return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD1, RANGE);
|
||||
// }
|
||||
//
|
||||
//}
|
@ -0,0 +1,27 @@
|
||||
//package com.gmail.nossr50.config;
|
||||
//
|
||||
//import java.util.List;
|
||||
//
|
||||
///**
|
||||
// * This is for config validation
|
||||
// */
|
||||
//public interface UnsafeValueValidation {
|
||||
// List<String> validateKeys();
|
||||
//
|
||||
// /**
|
||||
// * Prints all errors found when validating the config
|
||||
// */
|
||||
// default void validateEntries() {
|
||||
// /*
|
||||
// * Print Errors about Keys
|
||||
// */
|
||||
//
|
||||
// List<String> validKeyErrors = validateKeys(); // Validate Keys
|
||||
//
|
||||
// if (validKeyErrors != null && validKeyErrors.size() > 0) {
|
||||
// for (String error : validKeyErrors) {
|
||||
// pluginRef.getLogger().severe(error);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.meta.BonusDropMeta;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
@ -81,7 +80,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
BlockFace direction = event.getDirection();
|
||||
@ -106,7 +105,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
// Get opposite direction so we get correct block
|
||||
@ -128,7 +127,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityBlockFormEvent(EntityBlockFormEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (BlockUtils.shouldBeWatched(event.getBlock().getState())) {
|
||||
@ -139,7 +138,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockFormEvent(BlockFormEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block newBlock = event.getNewState().getBlock();
|
||||
@ -162,7 +161,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -205,7 +204,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockMultiPlace(BlockMultiPlaceEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -227,7 +226,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockGrow(BlockGrowEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
@ -247,7 +246,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
@ -341,7 +340,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreakHigher(BlockBreakEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
@ -410,7 +409,7 @@ public class BlockListener implements Listener {
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
@ -480,7 +479,7 @@ public class BlockListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockDamageHigher(BlockDamageEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
@ -79,7 +78,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityShootBow(EntityShootBowEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event.getEntity() instanceof Player) {
|
||||
@ -115,7 +114,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onProjectileLaunch(ProjectileLaunchEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if(event.getEntity().getShooter() instanceof Player)
|
||||
@ -155,7 +154,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityChangeBlock(EntityChangeBlockEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block block = event.getBlock();
|
||||
@ -305,7 +304,7 @@ public class EntityListener implements Listener {
|
||||
}
|
||||
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event instanceof FakeEntityDamageByEntityEvent) {
|
||||
@ -454,7 +453,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityDamage(EntityDamageEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event.getEntity() instanceof Player) {
|
||||
@ -621,7 +620,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityDeathLowest(EntityDeathEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
LivingEntity entity = event.getEntity();
|
||||
@ -653,7 +652,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
LivingEntity entity = event.getEntity();
|
||||
@ -673,7 +672,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
LivingEntity entity = event.getEntity();
|
||||
@ -709,7 +708,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onExplosionPrime(ExplosionPrimeEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
@ -752,7 +751,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEnitityExplode(EntityExplodeEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
@ -796,7 +795,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onEntityExplodeMonitor(EntityExplodeEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
@ -816,7 +815,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onFoodLevelChange(FoodLevelChangeEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
@ -924,7 +923,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onEntityTame(EntityTameEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event instanceof FakeEntityTameEvent) {
|
||||
@ -967,7 +966,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityTarget(EntityTargetEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
@ -1008,7 +1007,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPotionSplash(PotionSplashEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
for (PotionEffect effect : ((PotionMeta) event.getPotion().getItem().getItemMeta()).getCustomEffects()) {
|
||||
@ -1026,7 +1025,7 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPigZapEvent(PigZapEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) {
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
@ -37,7 +36,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onInventoryOpen(InventoryOpenEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
|
||||
@ -64,7 +63,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onInventoryClose(InventoryCloseEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
|
||||
@ -85,7 +84,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onFurnaceBurnEvent(FurnaceBurnEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block furnaceBlock = event.getBlock();
|
||||
@ -119,7 +118,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onFurnaceSmeltEvent(FurnaceSmeltEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block furnaceBlock = event.getBlock();
|
||||
@ -152,7 +151,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onFurnaceExtractEvent(FurnaceExtractEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Block furnaceBlock = event.getBlock();
|
||||
@ -186,7 +185,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
public void onInventoryClickEventNormal(InventoryClickEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWhoClicked().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Inventory inventory = event.getInventory();
|
||||
@ -313,7 +312,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
public void onInventoryDragEvent(InventoryDragEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWhoClicked().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Inventory inventory = event.getInventory();
|
||||
@ -369,7 +368,7 @@ public class InventoryListener implements Listener {
|
||||
// @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
// public void onBrew(BrewEvent event) {
|
||||
// /* WORLD BLACKLIST CHECK */
|
||||
// if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
||||
// if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getBlock().getWorld().getName()))
|
||||
// return;
|
||||
//
|
||||
// if (event instanceof FakeBrewEvent)
|
||||
@ -387,7 +386,7 @@ public class InventoryListener implements Listener {
|
||||
|
||||
//Location can be null here
|
||||
if (event.getSource().getLocation() != null)
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getSource().getLocation().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getSource().getLocation().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Inventory inventory = event.getDestination();
|
||||
@ -435,7 +434,7 @@ public class InventoryListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onCraftItem(CraftItemEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWhoClicked().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWhoClicked().getWorld().getName()))
|
||||
return;
|
||||
|
||||
final HumanEntity whoClicked = event.getWhoClicked();
|
||||
|
@ -2,7 +2,6 @@ package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.chat.ChatManager;
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
@ -63,7 +62,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerTeleport(PlayerTeleportEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -102,7 +101,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onPlayerDeathLowest(PlayerDeathEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
String deathMessage = event.getDeathMessage();
|
||||
@ -134,7 +133,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerDeathMonitor(PlayerDeathEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
boolean statLossEnabled = HardcoreManager.isStatLossEnabled();
|
||||
@ -213,7 +212,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerDropItem(PlayerDropItemEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
/* WORLD GUARD MAIN FLAG CHECK */
|
||||
@ -243,7 +242,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerFishHighest(PlayerFishEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -318,7 +317,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerFishMonitor(PlayerFishEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -410,7 +409,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerPickupItem(EntityPickupItemEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event.getEntity() instanceof Player) {
|
||||
@ -510,7 +509,7 @@ public class PlayerListener implements Listener {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
//Delay loading for 3 seconds in case the player has a save task running, its hacky but it should do the trick
|
||||
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(pluginRef, 60);
|
||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 60);
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigMOTD().isEnableMOTD()) {
|
||||
Motd.displayAll(player);
|
||||
@ -563,7 +562,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onPlayerInteractLowest(PlayerInteractEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -676,7 +675,7 @@ public class PlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerInteractMonitor(PlayerInteractEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -736,7 +735,9 @@ public class PlayerListener implements Listener {
|
||||
mcMMOPlayer.processAbilityActivation(PrimarySkillType.WOODCUTTING);
|
||||
}
|
||||
|
||||
ChimaeraWing.activationCheck(player);
|
||||
//TODO: Something needs to be done about this
|
||||
ChimaeraWing chimaeraWing = new ChimaeraWing(pluginRef, mcMMOPlayer);
|
||||
chimaeraWing.activationCheck();
|
||||
}
|
||||
|
||||
/* GREEN THUMB CHECK */
|
||||
@ -789,7 +790,9 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
/* ITEM CHECKS */
|
||||
ChimaeraWing.activationCheck(player);
|
||||
//TODO: Something needs to be done about this
|
||||
ChimaeraWing chimaeraWing = new ChimaeraWing(pluginRef, mcMMOPlayer);
|
||||
chimaeraWing.activationCheck();
|
||||
|
||||
/* BLAST MINING CHECK */
|
||||
MiningManager miningManager = mcMMOPlayer.getMiningManager();
|
||||
@ -897,7 +900,7 @@ public class PlayerListener implements Listener {
|
||||
/*@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) {
|
||||
*//* WORLD BLACKLIST CHECK *//*
|
||||
if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
|
||||
if(pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getPlayer().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (!mcMMO.getHolidayManager().isAprilFirst()) {
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.config.WorldBlacklist;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
@ -30,7 +29,7 @@ public class WorldListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onStructureGrow(StructureGrowEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (!pluginRef.getPlaceStore().isTrue(event.getLocation().getBlock())) {
|
||||
@ -50,7 +49,7 @@ public class WorldListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onWorldInit(WorldInitEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWorld().getName()))
|
||||
return;
|
||||
|
||||
World world = event.getWorld();
|
||||
@ -72,7 +71,7 @@ public class WorldListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onWorldUnload(WorldUnloadEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWorld().getName()))
|
||||
return;
|
||||
|
||||
pluginRef.getPlaceStore().unloadWorld(event.getWorld());
|
||||
@ -86,7 +85,7 @@ public class WorldListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onChunkUnload(ChunkUnloadEvent event) {
|
||||
/* WORLD BLACKLIST CHECK */
|
||||
if (WorldBlacklist.isWorldBlacklisted(event.getWorld()))
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getWorld().getName()))
|
||||
return;
|
||||
|
||||
Chunk chunk = event.getChunk();
|
||||
|
Loading…
Reference in New Issue
Block a user