All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/utils/MrLibConfig.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary.utils;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class MrLibConfig {
private static File configFile;
private static FileConfiguration config;
private static final String CONFIG_PATH = "plugins/MrUltimateLibrary/config.yml";
public static void init(JavaPlugin plugin) {
configFile = new File(CONFIG_PATH);
if (!configFile.exists()) {
configFile.getParentFile().mkdirs();
saveDefaultConfig(plugin);
}
reload();
}
public static FileConfiguration getConfig() {
if (config == null) {
reload();
}
return config;
}
public static void reload() {
if (configFile == null) {
configFile = new File(CONFIG_PATH);
}
config = YamlConfiguration.loadConfiguration(configFile);
InputStream defConfigStream = MrLibConfig.class.getClassLoader().getResourceAsStream("config.yml");
if (defConfigStream != null) {
config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream, StandardCharsets.UTF_8)));
}
}
public static void save() {
try {
config.save(configFile);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void saveDefaultConfig(JavaPlugin plugin) {
try (InputStream in = plugin.getResource("config.yml")) {
if (in != null) {
java.nio.file.Files.copy(in, configFile.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING);
}
} catch (Exception e) {
config = new YamlConfiguration();
config.set("update-notifier", true);
config.set("error-reporting", false);
config.set("analytics", false);
config.set("enable-generatrereport-command", true);
save();
}
}
}
71 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only