extract language if available.

This commit is contained in:
DNx5 2015-09-14 09:26:52 +07:00
parent 670caaea4b
commit 981da0a0f3
6 changed files with 59 additions and 102 deletions

View File

@ -127,9 +127,6 @@ public class AuthMe extends JavaPlugin {
// Setup the Logger // Setup the Logger
authmeLogger.setParent(this.getLogger()); authmeLogger.setParent(this.getLogger());
// Setup otherAccounts file
otherAccounts = OtherAccounts.getInstance();
// Load settings and custom configurations // Load settings and custom configurations
// TODO: new configuration style (more files) // TODO: new configuration style (more files)
try { try {
@ -139,6 +136,10 @@ public class AuthMe extends JavaPlugin {
this.getServer().shutdown(); this.getServer().shutdown();
return; return;
} }
// Setup otherAccounts file
otherAccounts = OtherAccounts.getInstance();
// Configuration Security Warnings // Configuration Security Warnings
if (!Settings.isForceSingleSessionEnabled) { if (!Settings.isForceSingleSessionEnabled) {
ConsoleLogger.showError("WARNING!!! By disabling ForceSingleSession, your server protection is inadequate!"); ConsoleLogger.showError("WARNING!!! By disabling ForceSingleSession, your server protection is inadequate!");

View File

@ -114,34 +114,7 @@ public class AdminCommand implements CommandExecutor {
return true; return true;
} }
} else if (args[0].equalsIgnoreCase("reload")) { } else if (args[0].equalsIgnoreCase("reload")) {
File newConfigFile = new File("plugins" + File.separator + "AuthMe", "config.yml"); plugin.getSettings().reload();
if (!newConfigFile.exists()) {
InputStream fis = getClass().getResourceAsStream("" + File.separator + "config.yml");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(newConfigFile);
byte[] buf = new byte[1024];
int i = 0;
while ((i = fis.read(buf)) != -1) {
fos.write(buf, 0, i);
}
} catch (Exception e) {
ConsoleLogger.showError("Failed to load config from JAR");
} finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
} catch (Exception e) {
}
}
}
YamlConfiguration newConfig = YamlConfiguration.loadConfiguration(newConfigFile);
Settings.reloadConfigOptions(newConfig);
m.reloadMessages(); m.reloadMessages();
plugin.database.close(); plugin.database.close();

View File

@ -1,21 +1,15 @@
package fr.xephi.authme.datasource; package fr.xephi.authme.datasource;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import fr.xephi.authme.AuthMe; import fr.xephi.authme.AuthMe;
import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.auth.PlayerCache;
import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.Settings;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class FlatFile implements DataSource { public class FlatFile implements DataSource {
/* /*
@ -32,7 +26,7 @@ public class FlatFile implements DataSource {
private File source; private File source;
public FlatFile() { public FlatFile() {
source = new File(Settings.AUTH_FILE); source = Settings.AUTH_FILE;
try { try {
source.createNewFile(); source.createNewFile();
} catch (IOException e) { } catch (IOException e) {
@ -41,9 +35,10 @@ public class FlatFile implements DataSource {
ConsoleLogger.showError("Can't use FLAT FILE... SHUTDOWN..."); ConsoleLogger.showError("Can't use FLAT FILE... SHUTDOWN...");
AuthMe.getInstance().getServer().shutdown(); AuthMe.getInstance().getServer().shutdown();
} }
if (!Settings.isStopEnabled) if (!Settings.isStopEnabled) {
AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance()); AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
return; }
e.printStackTrace();
} }
} }
@ -108,7 +103,7 @@ public class FlatFile implements DataSource {
BufferedReader br = null; BufferedReader br = null;
try { try {
br = new BufferedReader(new FileReader(source)); br = new BufferedReader(new FileReader(source));
String line = ""; String line;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
String[] args = line.split(":"); String[] args = line.split(":");
if (args[0].equals(auth.getNickname())) { if (args[0].equals(auth.getNickname())) {
@ -167,7 +162,7 @@ public class FlatFile implements DataSource {
BufferedReader br = null; BufferedReader br = null;
try { try {
br = new BufferedReader(new FileReader(source)); br = new BufferedReader(new FileReader(source));
String line = ""; String line;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
String[] args = line.split(":"); String[] args = line.split(":");
if (args[0].equalsIgnoreCase(auth.getNickname())) { if (args[0].equalsIgnoreCase(auth.getNickname())) {
@ -226,7 +221,7 @@ public class FlatFile implements DataSource {
BufferedReader br = null; BufferedReader br = null;
try { try {
br = new BufferedReader(new FileReader(source)); br = new BufferedReader(new FileReader(source));
String line = ""; String line;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
String[] args = line.split(":"); String[] args = line.split(":");
if (args[0].equalsIgnoreCase(auth.getNickname())) { if (args[0].equalsIgnoreCase(auth.getNickname())) {

View File

@ -52,6 +52,10 @@ public class CustomConfiguration extends YamlConfiguration {
} }
} }
public File getConfigFile() {
return configFile;
}
public boolean loadResource(File file) { public boolean loadResource(File file) {
if (!file.exists()) { if (!file.exists()) {
try { try {

View File

@ -1,10 +1,10 @@
package fr.xephi.authme.settings; package fr.xephi.authme.settings;
import java.io.File; import fr.xephi.authme.ConsoleLogger;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import fr.xephi.authme.ConsoleLogger; import java.io.File;
public class Messages extends CustomConfiguration { public class Messages extends CustomConfiguration {
@ -23,11 +23,10 @@ public class Messages extends CustomConfiguration {
/** /**
* Loads a file from the plugin jar and sets as default * Loads a file from the plugin jar and sets as default
* *
* @param file * @param file The filename to open
* The filename to open
*/ */
public final void loadDefaults(File file) { public final void loadDefaults(File file) {
if(file.isFile()){ if (file.isFile()) {
setDefaults(YamlConfiguration.loadConfiguration(file)); setDefaults(YamlConfiguration.loadConfiguration(file));
} }
} }
@ -48,7 +47,7 @@ public class Messages extends CustomConfiguration {
/** /**
* Saves current configuration (plus defaults) to disk. * Saves current configuration (plus defaults) to disk.
* * <p>
* If defaults and configuration are empty, saves blank file. * If defaults and configuration are empty, saves blank file.
* *
* @return True if saved successfully * @return True if saved successfully
@ -73,7 +72,7 @@ public class Messages extends CustomConfiguration {
String loc = (String) singleton.get(msg); String loc = (String) singleton.get(msg);
if (loc == null) { if (loc == null) {
loc = "Error with Translation files, please contact the admin for verify or update translation"; loc = "Error with Translation files, please contact the admin for verify or update translation";
ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml !"); ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + getConfigFile() + " !");
} }
for (String l : loc.split("&n")) { for (String l : loc.split("&n")) {
sender.sendMessage(l.replace("&", "\u00a7")); sender.sendMessage(l.replace("&", "\u00a7"));
@ -81,15 +80,12 @@ public class Messages extends CustomConfiguration {
} }
public String[] send(String msg) { public String[] send(String msg) {
if (!Settings.messagesLanguage.equalsIgnoreCase(singleton.lang)) if (!Settings.messagesLanguage.equalsIgnoreCase(singleton.lang)) {
singleton.reloadMessages(); singleton.reloadMessages();
String s = null;
try {
s = (String) singleton.get(msg);
} catch (Exception e) {
} }
String s = (String) singleton.get(msg);
if (s == null) { if (s == null) {
ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml !"); ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + getConfigFile() + " !");
String[] loc = new String[1]; String[] loc = new String[1];
loc[0] = "Error with " + msg + " translation; Please contact the admin for verify or update translation files"; loc[0] = "Error with " + msg + " translation; Please contact the admin for verify or update translation files";
return (loc); return (loc);
@ -108,13 +104,13 @@ public class Messages extends CustomConfiguration {
public static Messages getInstance() { public static Messages getInstance() {
if (singleton == null) { if (singleton == null) {
singleton = new Messages(new File(Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml"), Settings.messagesLanguage); singleton = new Messages(new File(Settings.MESSAGE_DIR, "messages_" + Settings.messagesLanguage + ".yml"), Settings.messagesLanguage);
} }
return singleton; return singleton;
} }
public void reloadMessages() { public void reloadMessages() {
singleton = new Messages(new File(Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml"), Settings.messagesLanguage); singleton = new Messages(new File(Settings.MESSAGE_DIR, "messages_" + Settings.messagesLanguage + ".yml"), Settings.messagesLanguage);
} }
} }

View File

@ -1,35 +1,28 @@
package fr.xephi.authme.settings; package fr.xephi.authme.settings;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bukkit.configuration.MemoryConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import fr.xephi.authme.AuthMe; import fr.xephi.authme.AuthMe;
import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.datasource.DataSource.DataSourceType; import fr.xephi.authme.datasource.DataSource.DataSourceType;
import fr.xephi.authme.security.HashAlgorithm; import fr.xephi.authme.security.HashAlgorithm;
import org.bukkit.configuration.MemoryConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public final class Settings extends YamlConfiguration { public final class Settings extends YamlConfiguration {
// This is not an option! // This is not an option!
public static Boolean antiBotInAction = false; public static Boolean antiBotInAction = false;
public static String PLUGIN_FOLDER = "." + File.separator + "plugins" + File.separator + "AuthMe"; public static final File PLUGIN_FOLDER = AuthMe.getInstance().getDataFolder();
public static final String CACHE_FOLDER = Settings.PLUGIN_FOLDER + File.separator + "cache"; public static final File CACHE_FOLDER = new File(PLUGIN_FOLDER, "cache");
public static final String AUTH_FILE = Settings.PLUGIN_FOLDER + File.separator + "auths.db"; public static final File AUTH_FILE = new File(PLUGIN_FOLDER, "auths.db");
public static final String MESSAGE_FILE = Settings.PLUGIN_FOLDER + File.separator + "messages" + File.separator + "messages"; public static final File MESSAGE_DIR = new File(PLUGIN_FOLDER, "messages");
public static final String SETTINGS_FILE = Settings.PLUGIN_FOLDER + File.separator + "config.yml"; public static final File SETTINGS_FILE = new File(PLUGIN_FOLDER, "config.yml");
public static List<String> allowCommands = null; public static List<String> allowCommands = null;
public static List<String> getJoinPermissions = null; public static List<String> getJoinPermissions = null;
public static List<String> getUnrestrictedName = null; public static List<String> getUnrestrictedName = null;
@ -43,7 +36,6 @@ public final class Settings extends YamlConfiguration {
public static List<String> forceRegisterCommands = null; public static List<String> forceRegisterCommands = null;
public static List<String> forceRegisterCommandsAsConsole = null; public static List<String> forceRegisterCommandsAsConsole = null;
private AuthMe plugin; private AuthMe plugin;
private final File file;
public static DataSourceType getDataSource; public static DataSourceType getDataSource;
public static HashAlgorithm getPasswordHash; public static HashAlgorithm getPasswordHash;
public static Boolean useLogging = false; public static Boolean useLogging = false;
@ -100,7 +92,7 @@ public final class Settings extends YamlConfiguration {
protected static YamlConfiguration configFile; protected static YamlConfiguration configFile;
public Settings(AuthMe plugin) { public Settings(AuthMe plugin) {
this.file = new File(plugin.getDataFolder(), "config.yml"); configFile = (YamlConfiguration) plugin.getConfig();
this.plugin = plugin; this.plugin = plugin;
boolean exist = exists(); boolean exist = exists();
if (exist) { if (exist) {
@ -109,8 +101,6 @@ public final class Settings extends YamlConfiguration {
plugin.saveDefaultConfig(); plugin.saveDefaultConfig();
load(); load();
} }
configFile = (YamlConfiguration) plugin.getConfig();
PLUGIN_FOLDER = plugin.getDataFolder().toString();
loadConfigOptions(exist); loadConfigOptions(exist);
} }
@ -519,14 +509,10 @@ public final class Settings extends YamlConfiguration {
; ;
} }
} }
if (namefound == false) { if (!namefound) {
return true; return true;
} else { } else {
if (trueonce == true) { return trueonce;
return true;
} else {
return false;
}
} }
} }
@ -537,7 +523,7 @@ public final class Settings extends YamlConfiguration {
*/ */
public final boolean load() { public final boolean load() {
try { try {
load(file); load(SETTINGS_FILE);
return true; return true;
} catch (Exception ex) { } catch (Exception ex) {
return false; return false;
@ -545,8 +531,9 @@ public final class Settings extends YamlConfiguration {
} }
public final void reload() { public final void reload() {
if (!exists()) if (!exists()) {
plugin.saveDefaultConfig(); plugin.saveDefaultConfig();
}
load(); load();
} }
@ -557,7 +544,7 @@ public final class Settings extends YamlConfiguration {
*/ */
public final boolean save() { public final boolean save() {
try { try {
save(file); save(SETTINGS_FILE);
return true; return true;
} catch (Exception ex) { } catch (Exception ex) {
return false; return false;
@ -570,12 +557,12 @@ public final class Settings extends YamlConfiguration {
* @return True if configuration exists on disk * @return True if configuration exists on disk
*/ */
public final boolean exists() { public final boolean exists() {
return file.exists(); return SETTINGS_FILE.exists();
} }
/** /**
* Saves current configuration (plus defaults) to disk. * Saves current configuration (plus defaults) to disk.
* * <p>
* If defaults and configuration are empty, saves blank file. * If defaults and configuration are empty, saves blank file.
* *
* @return True if saved successfully * @return True if saved successfully
@ -602,14 +589,15 @@ public final class Settings extends YamlConfiguration {
* @return false When all defaults aren't present in config * @return false When all defaults aren't present in config
*/ */
public boolean checkDefaults() { public boolean checkDefaults() {
if (getDefaults() == null) { return getDefaults() == null || getKeys(true).containsAll(getDefaults().getKeys(true));
return true;
}
return getKeys(true).containsAll(getDefaults().getKeys(true));
} }
public static String checkLang(String lang) { public static String checkLang(String lang) {
if (new File(MESSAGE_FILE + "_" + lang + ".yml").exists()) { if (new File(MESSAGE_DIR, "messages_" + lang + ".yml").exists()) {
ConsoleLogger.info("Set Language to: " + lang);
return lang;
}
if (AuthMe.class.getResourceAsStream("/messages/messages_" + lang + ".yml") != null) {
ConsoleLogger.info("Set Language to: " + lang); ConsoleLogger.info("Set Language to: " + lang);
return lang; return lang;
} }
@ -629,7 +617,7 @@ public final class Settings extends YamlConfiguration {
private static void getWelcomeMessage() { private static void getWelcomeMessage() {
AuthMe plugin = AuthMe.getInstance(); AuthMe plugin = AuthMe.getInstance();
welcomeMsg = new ArrayList<String>(); welcomeMsg = new ArrayList<>();
if (!useWelcomeMessage) { if (!useWelcomeMessage) {
return; return;
} }