From 044054d594141a3cdef58b60bf073d5c825bc85d Mon Sep 17 00:00:00 2001 From: TechnicallyCoded Date: Sat, 7 Oct 2023 06:03:24 +0200 Subject: [PATCH] Ensure that the English file always is available as a backup (#178) --- .../BetterRTP/references/file/FileLanguage.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/FileLanguage.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/FileLanguage.java index a0e1768..dcdf02e 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/FileLanguage.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/FileLanguage.java @@ -7,6 +7,7 @@ import org.bukkit.plugin.Plugin; import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; public class FileLanguage implements FileData { private final YamlConfiguration config = new YamlConfiguration(); @@ -57,12 +58,12 @@ public class FileLanguage implements FileData { } private final String[] defaultLangs = { + "en.yml", // English - KEEP AS FIRST IN THE LIST "chs.yml", //Chinese Simplified (OasisAkari) "cht.yml", //Chinese (OasisAkari & kamiya10) "cs.yml", //Czech (Lewisparkle) "da.yml", //Danish (Janbchr) "de.yml", //German (IBimsDaNico#8690) - "en.yml", "es.yml", //Spanish (emgv) "fr.yml", //French (At0micA55 & Mrflo67) "he.yml", //Hebrew (thefourcraft) @@ -77,11 +78,14 @@ public class FileLanguage implements FileData { }; private void generateDefaults() { - //Generate all language files + // Generate all language files for (String yaml : defaultLangs) { - generateDefaultConfig(yaml, yaml); //Generate its own defaults + generateDefaultConfig(yaml, yaml); // Generate defaults of this language + + // Not english, make sure all options are present if (!yaml.equals(defaultLangs[0])) - generateDefaultConfig(yaml, defaultLangs[0]); //Generate the english defaults (incase) + // Generate the english defaults (in case some options are missing) + generateDefaultConfig(yaml, defaultLangs[0]); } } @@ -98,7 +102,7 @@ public class FileLanguage implements FileData { if (in == null) in = plugin().getResource(fileNameDef.replace(File.separator, "/")); if (in != null) { - config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in))); + config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in, StandardCharsets.UTF_8))); config.options().copyDefaults(true); in.close(); }