Fix custom language files.
- Now actually using custom language file when indicated in the config file. - Set default language file to read-only. - Added warning message to not alter the default language file as it'll be regenerated.
This commit is contained in:
parent
45d5f90fef
commit
ecd0340cd6
@ -92,9 +92,6 @@ public class ArmoredElytra extends JavaPlugin implements Listener
|
||||
// Y u do dis? :(
|
||||
myLogger(Level.INFO, "Stats disabled, not loading stats :(... Please consider enabling it! I am a simple man, seeing higher user numbers helps me stay motivated!");
|
||||
|
||||
locale = config.getString("languageFile");
|
||||
|
||||
|
||||
// Load the files for the correct version of Minecraft.
|
||||
if (compatibleMCVer())
|
||||
{
|
||||
@ -139,6 +136,8 @@ public class ArmoredElytra extends JavaPlugin implements Listener
|
||||
|
||||
// Check if the plugin should go into uninstall mode.
|
||||
uninstallMode = config.getBool("uninstallMode");
|
||||
|
||||
locale = config.getString("languageFile");
|
||||
}
|
||||
|
||||
public Messages getMyMessages()
|
||||
@ -223,6 +222,10 @@ public class ArmoredElytra extends JavaPlugin implements Listener
|
||||
|
||||
public String getLocale()
|
||||
{
|
||||
if (locale == null)
|
||||
System.out.println("locale is null!");
|
||||
else
|
||||
System.out.println("Locale is " + locale);
|
||||
return locale == null ? "en_US" : locale;
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,6 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import nl.pim16aap2.armoredElytra.ArmoredElytra;
|
||||
import nl.pim16aap2.armoredElytra.util.ConfigOption;
|
||||
|
||||
public class ConfigLoader
|
||||
{
|
||||
@ -35,7 +34,7 @@ public class ConfigLoader
|
||||
public ConfigLoader(ArmoredElytra plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
configOptionsList = new ArrayList<ConfigOption>();
|
||||
configOptionsList = new ArrayList<>();
|
||||
makeConfig();
|
||||
}
|
||||
|
||||
|
@ -15,22 +15,30 @@ public class Messages
|
||||
{
|
||||
private Map<String, String> messageMap = new HashMap<>();
|
||||
private ArmoredElytra plugin;
|
||||
private String locale;
|
||||
private File textFile;
|
||||
|
||||
public Messages(ArmoredElytra plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
locale = plugin.getLocale();
|
||||
textFile = new File(plugin.getDataFolder(), locale + ".txt");
|
||||
textFile = new File(plugin.getDataFolder(), plugin.getLocale() + ".txt");
|
||||
readFile();
|
||||
}
|
||||
|
||||
private void writeDefaultFile()
|
||||
{
|
||||
File defaultFile = new File(plugin.getDataFolder(), "en_US.txt");
|
||||
if (!defaultFile.setWritable(true))
|
||||
plugin.myLogger(Level.SEVERE, "Failed to make file \"" + defaultFile + "\" writable!");
|
||||
|
||||
// Load the default en_US from the resources.
|
||||
plugin.saveResource("en_US.txt", true);
|
||||
defaultFile.setWritable(false);
|
||||
}
|
||||
|
||||
// Read locale file.
|
||||
private void readFile()
|
||||
{
|
||||
// Load the default en_US from the resources.
|
||||
plugin.saveResource("en_US.txt", true);
|
||||
writeDefaultFile();
|
||||
|
||||
try (BufferedReader br = new BufferedReader(new FileReader(textFile)))
|
||||
{
|
||||
@ -38,6 +46,9 @@ public class Messages
|
||||
|
||||
while ((sCurrentLine = br.readLine()) != null)
|
||||
{
|
||||
// Ignore comments.
|
||||
if (sCurrentLine.startsWith("#"))
|
||||
continue;
|
||||
String key, value;
|
||||
String[] parts = sCurrentLine.split("=", 2);
|
||||
key = parts[0];
|
||||
@ -55,11 +66,11 @@ public class Messages
|
||||
}
|
||||
catch (FileNotFoundException e)
|
||||
{
|
||||
plugin.myLogger(Level.SEVERE, "Locale file " + locale + ".txt does not exist!");
|
||||
plugin.myLogger(Level.SEVERE, "Locale file \"" + textFile + "\" does not exist!");
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
plugin.myLogger(Level.SEVERE, "Could not read locale file! (" + locale + ".txt)");
|
||||
plugin.myLogger(Level.SEVERE, "Could not read locale file: \"" + textFile + "\"");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -71,9 +82,18 @@ public class Messages
|
||||
value = messageMap.get(key);
|
||||
if (value == null)
|
||||
{
|
||||
value = "ArmoredElytra: Translation not found! Contact server admin!";
|
||||
value = "BigDoors: Translation not found! Contact server admin!";
|
||||
plugin.myLogger(Level.WARNING, "Failed to get translation for key " + key);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public String getStringReverse(String value)
|
||||
{
|
||||
return messageMap.entrySet().stream()
|
||||
.filter(e -> e.getValue().equals(value))
|
||||
.map(Map.Entry::getKey)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,9 @@
|
||||
# This file contains all the (partial) sentences used in this plugin.
|
||||
# If you want to modify anything, make sure to do so in a copy, as this file will be regenerated on startup!
|
||||
# You can change which file will be used in the config.yml.
|
||||
# The format is "key=value" (without quotation marks). You can modify the values, but not the keys.
|
||||
# Order doesn't matter and you can use comments if you so desire.
|
||||
# Please do note that white space does matter! (so spaces at the end of lines, for example).
|
||||
TIER.Leather=&2Leather Armored Elytra
|
||||
TIER.Gold=&EGolden Armored Elytra
|
||||
TIER.Chain=&8Chain Armored Elytra
|
||||
|
Loading…
x
Reference in New Issue
Block a user