diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 8c5732e3f..0bd83cb6b 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -127,9 +127,6 @@ public class AuthMe extends JavaPlugin { // Setup the Logger authmeLogger.setParent(this.getLogger()); - // Setup otherAccounts file - otherAccounts = OtherAccounts.getInstance(); - // Load settings and custom configurations // TODO: new configuration style (more files) try { @@ -139,6 +136,10 @@ public class AuthMe extends JavaPlugin { this.getServer().shutdown(); return; } + + // Setup otherAccounts file + otherAccounts = OtherAccounts.getInstance(); + // Configuration Security Warnings if (!Settings.isForceSingleSessionEnabled) { ConsoleLogger.showError("WARNING!!! By disabling ForceSingleSession, your server protection is inadequate!"); diff --git a/src/main/java/fr/xephi/authme/commands/AdminCommand.java b/src/main/java/fr/xephi/authme/commands/AdminCommand.java index 3e3961508..5862b8269 100644 --- a/src/main/java/fr/xephi/authme/commands/AdminCommand.java +++ b/src/main/java/fr/xephi/authme/commands/AdminCommand.java @@ -114,34 +114,7 @@ public class AdminCommand implements CommandExecutor { return true; } } else if (args[0].equalsIgnoreCase("reload")) { - File newConfigFile = new File("plugins" + File.separator + "AuthMe", "config.yml"); - 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); + plugin.getSettings().reload(); m.reloadMessages(); plugin.database.close(); diff --git a/src/main/java/fr/xephi/authme/datasource/FlatFile.java b/src/main/java/fr/xephi/authme/datasource/FlatFile.java index 2b54e4df9..22fee78cd 100644 --- a/src/main/java/fr/xephi/authme/datasource/FlatFile.java +++ b/src/main/java/fr/xephi/authme/datasource/FlatFile.java @@ -1,21 +1,15 @@ 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.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.settings.Settings; +import java.io.*; +import java.util.ArrayList; +import java.util.List; + public class FlatFile implements DataSource { /* @@ -32,7 +26,7 @@ public class FlatFile implements DataSource { private File source; public FlatFile() { - source = new File(Settings.AUTH_FILE); + source = Settings.AUTH_FILE; try { source.createNewFile(); } catch (IOException e) { @@ -41,9 +35,10 @@ public class FlatFile implements DataSource { ConsoleLogger.showError("Can't use FLAT FILE... SHUTDOWN..."); AuthMe.getInstance().getServer().shutdown(); } - if (!Settings.isStopEnabled) + if (!Settings.isStopEnabled) { AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance()); - return; + } + e.printStackTrace(); } } @@ -108,7 +103,7 @@ public class FlatFile implements DataSource { BufferedReader br = null; try { br = new BufferedReader(new FileReader(source)); - String line = ""; + String line; while ((line = br.readLine()) != null) { String[] args = line.split(":"); if (args[0].equals(auth.getNickname())) { @@ -167,7 +162,7 @@ public class FlatFile implements DataSource { BufferedReader br = null; try { br = new BufferedReader(new FileReader(source)); - String line = ""; + String line; while ((line = br.readLine()) != null) { String[] args = line.split(":"); if (args[0].equalsIgnoreCase(auth.getNickname())) { @@ -226,7 +221,7 @@ public class FlatFile implements DataSource { BufferedReader br = null; try { br = new BufferedReader(new FileReader(source)); - String line = ""; + String line; while ((line = br.readLine()) != null) { String[] args = line.split(":"); if (args[0].equalsIgnoreCase(auth.getNickname())) { diff --git a/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java b/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java index 5123ef581..88de17d7b 100644 --- a/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java +++ b/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java @@ -52,6 +52,10 @@ public class CustomConfiguration extends YamlConfiguration { } } + public File getConfigFile() { + return configFile; + } + public boolean loadResource(File file) { if (!file.exists()) { try { diff --git a/src/main/java/fr/xephi/authme/settings/Messages.java b/src/main/java/fr/xephi/authme/settings/Messages.java index 197ddae59..7f3f04c31 100644 --- a/src/main/java/fr/xephi/authme/settings/Messages.java +++ b/src/main/java/fr/xephi/authme/settings/Messages.java @@ -1,10 +1,10 @@ package fr.xephi.authme.settings; -import java.io.File; +import fr.xephi.authme.ConsoleLogger; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; -import fr.xephi.authme.ConsoleLogger; +import java.io.File; 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 * - * @param file - * The filename to open + * @param file The filename to open */ public final void loadDefaults(File file) { - if(file.isFile()){ + if (file.isFile()) { setDefaults(YamlConfiguration.loadConfiguration(file)); } } @@ -48,7 +47,7 @@ public class Messages extends CustomConfiguration { /** * Saves current configuration (plus defaults) to disk. - * + *
* If defaults and configuration are empty, saves blank file.
*
* @return True if saved successfully
@@ -73,7 +72,7 @@ public class Messages extends CustomConfiguration {
String loc = (String) singleton.get(msg);
if (loc == null) {
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")) {
sender.sendMessage(l.replace("&", "\u00a7"));
@@ -81,15 +80,12 @@ public class Messages extends CustomConfiguration {
}
public String[] send(String msg) {
- if (!Settings.messagesLanguage.equalsIgnoreCase(singleton.lang))
+ if (!Settings.messagesLanguage.equalsIgnoreCase(singleton.lang)) {
singleton.reloadMessages();
- String s = null;
- try {
- s = (String) singleton.get(msg);
- } catch (Exception e) {
}
+ String s = (String) singleton.get(msg);
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];
loc[0] = "Error with " + msg + " translation; Please contact the admin for verify or update translation files";
return (loc);
@@ -108,13 +104,13 @@ public class Messages extends CustomConfiguration {
public static Messages getInstance() {
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;
}
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);
}
}
diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java
index cd9159031..e7d34b994 100644
--- a/src/main/java/fr/xephi/authme/settings/Settings.java
+++ b/src/main/java/fr/xephi/authme/settings/Settings.java
@@ -1,35 +1,28 @@
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.ConsoleLogger;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.datasource.DataSource.DataSourceType;
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 {
// This is not an option!
public static Boolean antiBotInAction = false;
- public static String PLUGIN_FOLDER = "." + File.separator + "plugins" + File.separator + "AuthMe";
- public static final String CACHE_FOLDER = Settings.PLUGIN_FOLDER + File.separator + "cache";
- public static final String AUTH_FILE = Settings.PLUGIN_FOLDER + File.separator + "auths.db";
- public static final String MESSAGE_FILE = Settings.PLUGIN_FOLDER + File.separator + "messages" + File.separator + "messages";
- public static final String SETTINGS_FILE = Settings.PLUGIN_FOLDER + File.separator + "config.yml";
+ public static final File PLUGIN_FOLDER = AuthMe.getInstance().getDataFolder();
+ public static final File CACHE_FOLDER = new File(PLUGIN_FOLDER, "cache");
+ public static final File AUTH_FILE = new File(PLUGIN_FOLDER, "auths.db");
+ public static final File MESSAGE_DIR = new File(PLUGIN_FOLDER, "messages");
+ public static final File SETTINGS_FILE = new File(PLUGIN_FOLDER, "config.yml");
public static List
* If defaults and configuration are empty, saves blank file.
*
* @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
*/
public boolean checkDefaults() {
- if (getDefaults() == null) {
- return true;
- }
- return getKeys(true).containsAll(getDefaults().getKeys(true));
+ return getDefaults() == null || getKeys(true).containsAll(getDefaults().getKeys(true));
}
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);
return lang;
}
@@ -629,7 +617,7 @@ public final class Settings extends YamlConfiguration {
private static void getWelcomeMessage() {
AuthMe plugin = AuthMe.getInstance();
- welcomeMsg = new ArrayList