mirror of
https://github.com/plexusorg/Plex.git
synced 2024-11-13 23:33:33 +00:00
Auto updating files
This commit is contained in:
parent
741d3a52b4
commit
30252ba51b
@ -1,7 +1,10 @@
|
|||||||
package dev.plex.config;
|
package dev.plex.config;
|
||||||
|
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
|
import dev.plex.util.PlexLog;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,6 +16,7 @@ public class Config extends YamlConfiguration
|
|||||||
* The plugin instance
|
* The plugin instance
|
||||||
*/
|
*/
|
||||||
private Plex plugin;
|
private Plex plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The File instance
|
* The File instance
|
||||||
*/
|
*/
|
||||||
@ -23,6 +27,11 @@ public class Config extends YamlConfiguration
|
|||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether new entries were added to the file automatically
|
||||||
|
*/
|
||||||
|
private boolean added = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a config object
|
* Creates a config object
|
||||||
*
|
*
|
||||||
@ -48,6 +57,27 @@ public class Config extends YamlConfiguration
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
YamlConfiguration externalYamlConfig = YamlConfiguration.loadConfiguration(file);
|
||||||
|
InputStreamReader internalConfigFileStream = new InputStreamReader(Plex.get().getResource(name), StandardCharsets.UTF_8);
|
||||||
|
YamlConfiguration internalYamlConfig = YamlConfiguration.loadConfiguration(internalConfigFileStream);
|
||||||
|
|
||||||
|
// Gets all the keys inside the internal file and iterates through all of it's key pairs
|
||||||
|
for (String string : internalYamlConfig.getKeys(true))
|
||||||
|
{
|
||||||
|
// Checks if the external file contains the key already.
|
||||||
|
if (!externalYamlConfig.contains(string))
|
||||||
|
{
|
||||||
|
// If it doesn't contain the key, we set the key based off what was found inside the plugin jar
|
||||||
|
externalYamlConfig.set(string, internalYamlConfig.get(string));
|
||||||
|
PlexLog.log("Setting key: " + string + " to the default value(s) since it does not exist!");
|
||||||
|
added = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (added)
|
||||||
|
{
|
||||||
|
externalYamlConfig.save(file);
|
||||||
|
PlexLog.log("Saving new configuration file...");
|
||||||
|
}
|
||||||
super.load(file);
|
super.load(file);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
Loading…
Reference in New Issue
Block a user