109 lines
3.7 KiB
Java
109 lines
3.7 KiB
Java
package org.bukkit.configuration.file;
|
|
|
|
import org.bukkit.configuration.*;
|
|
|
|
/**
|
|
* Various settings for controlling the input and output of a {@link FileConfiguration}
|
|
*/
|
|
public class FileConfigurationOptions extends MemoryConfigurationOptions {
|
|
private String header = null;
|
|
private boolean copyHeader = true;
|
|
|
|
protected FileConfigurationOptions(MemoryConfiguration configuration) {
|
|
super(configuration);
|
|
}
|
|
|
|
@Override
|
|
public FileConfiguration configuration() {
|
|
return (FileConfiguration) super.configuration();
|
|
}
|
|
|
|
@Override
|
|
public FileConfigurationOptions copyDefaults(boolean value) {
|
|
super.copyDefaults(value);
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public FileConfigurationOptions pathSeparator(char value) {
|
|
super.pathSeparator(value);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Gets the header that will be applied to the top of the saved output.
|
|
* <p>
|
|
* This header will be commented out and applied directly at the top of the
|
|
* generated output of the {@link FileConfiguration}. It is not required to
|
|
* include a newline at the end of the header as it will automatically be applied,
|
|
* but you may include one if you wish for extra spacing.
|
|
* <p>
|
|
* Null is a valid value which will indicate that no header is to be applied.
|
|
* The default value is null.
|
|
*
|
|
* @return Header
|
|
*/
|
|
public String header() {
|
|
return header;
|
|
}
|
|
|
|
/**
|
|
* Sets the header that will be applied to the top of the saved output.
|
|
* <p>
|
|
* This header will be commented out and applied directly at the top of the
|
|
* generated output of the {@link FileConfiguration}. It is not required to
|
|
* include a newline at the end of the header as it will automatically be applied,
|
|
* but you may include one if you wish for extra spacing.
|
|
* <p>
|
|
* Null is a valid value which will indicate that no header is to be applied.
|
|
*
|
|
* @param value New header
|
|
* @return This object, for chaining
|
|
*/
|
|
public FileConfigurationOptions header(String value) {
|
|
this.header = value;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Gets whether or not the header should be copied from a default source.
|
|
* <p>
|
|
* If this is true, if a default {@link FileConfiguration} is passed to
|
|
* {@link FileConfiguration#setDefaults(org.bukkit.configuration.Configuration)}
|
|
* then upon saving it will use the header from that config, instead of the one provided here.
|
|
* <p>
|
|
* If no default is set on the configuration, or the default is not of type FileConfiguration,
|
|
* or that config has no header ({@link #header()} returns null) then the header
|
|
* specified in this configuration will be used.
|
|
* <p>
|
|
* Defaults to true.
|
|
*
|
|
* @return Whether or not to copy the header
|
|
*/
|
|
public boolean copyHeader() {
|
|
return copyHeader;
|
|
}
|
|
|
|
/**
|
|
* Sets whether or not the header should be copied from a default source.
|
|
* <p>
|
|
* If this is true, if a default {@link FileConfiguration} is passed to
|
|
* {@link FileConfiguration#setDefaults(org.bukkit.configuration.Configuration)}
|
|
* then upon saving it will use the header from that config, instead of the one provided here.
|
|
* <p>
|
|
* If no default is set on the configuration, or the default is not of type FileConfiguration,
|
|
* or that config has no header ({@link #header()} returns null) then the header
|
|
* specified in this configuration will be used.
|
|
* <p>
|
|
* Defaults to true.
|
|
*
|
|
* @param value Whether or not to copy the header
|
|
* @return This object, for chaining
|
|
*/
|
|
public FileConfigurationOptions copyHeader(boolean value) {
|
|
copyHeader = value;
|
|
|
|
return this;
|
|
}
|
|
}
|