#293 Create class for handling messages from file with fallback
- Move logic for loading a messages file with a default fallback into one class - Remove message-specific handling from Settings class
This commit is contained in:
@@ -6,8 +6,6 @@ import com.github.authme.configme.migration.MigrationService;
|
||||
import com.github.authme.configme.resource.PropertyResource;
|
||||
import com.google.common.io.Files;
|
||||
import fr.xephi.authme.ConsoleLogger;
|
||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||
import fr.xephi.authme.util.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -22,8 +20,6 @@ import static fr.xephi.authme.util.FileUtils.copyFileFromResource;
|
||||
public class Settings extends SettingsManager {
|
||||
|
||||
private final File pluginFolder;
|
||||
/** The file with the localized messages based on {@link PluginSettings#MESSAGES_LANGUAGE}. */
|
||||
private File messagesFile;
|
||||
private String[] welcomeMessage;
|
||||
private String passwordEmailMessage;
|
||||
private String recoveryCodeEmailMessage;
|
||||
@@ -43,24 +39,6 @@ public class Settings extends SettingsManager {
|
||||
loadSettingsFromFiles();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the messages file based on the messages language config.
|
||||
*
|
||||
* @return The messages file to read messages from
|
||||
*/
|
||||
public File getMessagesFile() {
|
||||
return messagesFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the path to the default messages file within the JAR.
|
||||
*
|
||||
* @return The default messages file path
|
||||
*/
|
||||
public String getDefaultMessagesFile() {
|
||||
return "/messages/messages_en.yml";
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the text to use in email registrations.
|
||||
*
|
||||
@@ -89,7 +67,6 @@ public class Settings extends SettingsManager {
|
||||
}
|
||||
|
||||
private void loadSettingsFromFiles() {
|
||||
messagesFile = buildMessagesFile();
|
||||
passwordEmailMessage = readFile("email.html");
|
||||
recoveryCodeEmailMessage = readFile("recovery_code_email.html");
|
||||
welcomeMessage = readFile("welcome.txt").split("\n");
|
||||
@@ -101,28 +78,6 @@ public class Settings extends SettingsManager {
|
||||
loadSettingsFromFiles();
|
||||
}
|
||||
|
||||
private File buildMessagesFile() {
|
||||
String languageCode = getProperty(PluginSettings.MESSAGES_LANGUAGE);
|
||||
|
||||
String filePath = buildMessagesFilePathFromCode(languageCode);
|
||||
File messagesFile = new File(pluginFolder, filePath);
|
||||
if (copyFileFromResource(messagesFile, filePath)) {
|
||||
return messagesFile;
|
||||
}
|
||||
|
||||
// File doesn't exist or couldn't be copied - try again with default, "en"
|
||||
String defaultFilePath = buildMessagesFilePathFromCode("en");
|
||||
File defaultFile = new File(pluginFolder, defaultFilePath);
|
||||
copyFileFromResource(defaultFile, defaultFilePath);
|
||||
|
||||
// No matter the result, need to return a file
|
||||
return defaultFile;
|
||||
}
|
||||
|
||||
private static String buildMessagesFilePathFromCode(String language) {
|
||||
return FileUtils.makePath("messages", "messages_" + language + ".yml");
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads a file from the plugin folder or copies it from the JAR to the plugin folder.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user