All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.configuration.ConfigurationOptions Maven / Gradle / Ivy

The newest version!
package org.bukkit.configuration;

/**
 * Various settings for controlling the input and output of a {@link
 * Configuration}
 */
public class ConfigurationOptions {
  private final Configuration configuration;
  private char pathSeparator = '.';
  private boolean copyDefaults = false;

  protected ConfigurationOptions(Configuration configuration) {
    this.configuration = configuration;
  }

  /**
   * Returns the {@link Configuration} that this object is responsible for.
   *
   * @return Parent configuration
   */
  public Configuration configuration() {
    return configuration;
  }

  /**
   * Gets the char that will be used to separate {@link
   * ConfigurationSection}s
   * 

* This value does not affect how the {@link Configuration} is stored, * only in how you access the data. The default value is '.'. * * @return Path separator */ public char pathSeparator() { return pathSeparator; } /** * Sets the char that will be used to separate {@link * ConfigurationSection}s *

* This value does not affect how the {@link Configuration} is stored, * only in how you access the data. The default value is '.'. * * @param value Path separator * @return This object, for chaining */ public ConfigurationOptions pathSeparator(char value) { this.pathSeparator = value; return this; } /** * Checks if the {@link Configuration} should copy values from its default * {@link Configuration} directly. *

* If this is true, all values in the default Configuration will be * directly copied, making it impossible to distinguish between values * that were set and values that are provided by default. As a result, * {@link ConfigurationSection#contains(java.lang.String)} will always * return the same value as {@link * ConfigurationSection#isSet(java.lang.String)}. The default value is * false. * * @return Whether or not defaults are directly copied */ public boolean copyDefaults() { return copyDefaults; } /** * Sets if the {@link Configuration} should copy values from its default * {@link Configuration} directly. *

* If this is true, all values in the default Configuration will be * directly copied, making it impossible to distinguish between values * that were set and values that are provided by default. As a result, * {@link ConfigurationSection#contains(java.lang.String)} will always * return the same value as {@link * ConfigurationSection#isSet(java.lang.String)}. The default value is * false. * * @param value Whether or not defaults are directly copied * @return This object, for chaining */ public ConfigurationOptions copyDefaults(boolean value) { this.copyDefaults = value; return this; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy