diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java index 1c3a4f44..8eb1a92b 100644 --- a/src/main/java/fr/xephi/authme/SendMailSSL.java +++ b/src/main/java/fr/xephi/authme/SendMailSSL.java @@ -48,7 +48,7 @@ public class SendMailSSL { final String subject = Settings.getMailSubject; final String smtp = Settings.getmailSMTP; final String password = Settings.getmailPassword; - final String mailText = Settings.getMailText.replace("", auth.getNickname()).replace("", plugin.getServer().getServerName()).replace("", newPass); + final String mailText = Settings.getMailText.replace("%playername%", auth.getNickname()).replace("%servername%", plugin.getServer().getServerName()).replace("%generatedpass%", newPass); final String mail = auth.getEmail(); Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { @@ -76,7 +76,7 @@ public class SendMailSSL { ImageIO.write(gen.generateImage(), "jpg", file); DataSource source = new FileDataSource(file); String tag = email.embed(source, auth.getNickname() + "_new_pass.jpg"); - content = content.replace("", ""); + content = content.replace("%image%", ""); } catch (Exception e) { ConsoleLogger.showError("Unable to send new password as image! Using normal text! Dest: " + mail); } diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index df9e0b0a..0c245e02 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -8,7 +8,11 @@ import fr.xephi.authme.security.HashAlgorithm; import fr.xephi.authme.util.Wrapper; import org.bukkit.configuration.file.YamlConfiguration; +import com.google.common.base.Charsets; +import com.google.common.io.Files; + import java.io.*; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; @@ -23,6 +27,7 @@ public final class Settings { public static final File MODULE_FOLDER = new File(PLUGIN_FOLDER, "modules"); 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 EMAIL_FILE = new File(PLUGIN_FOLDER, "email.html"); public static final File SETTINGS_FILE = new File(PLUGIN_FOLDER, "config.yml"); public static final File LOG_FILE = new File(PLUGIN_FOLDER, "authme.log"); // This is not an option! @@ -221,7 +226,7 @@ public final class Settings { maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5); captchaLength = configFile.getInt("Security.captcha.captchaLength", 5); getMailSubject = configFile.getString("Email.mailSubject", "Your new AuthMe Password"); - getMailText = configFile.getString("Email.mailText", "Dear ,

This is your new AuthMe password for the server

:



Do not forget to change password after login!
/changepassword newPassword"); + getMailText = loadEmailText(); emailRegistration = configFile.getBoolean("settings.registration.enableEmailRegistrationSystem", false); saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8); getmaxRegPerEmail = configFile.getInt("Email.maxRegPerEmail", 1); @@ -285,7 +290,40 @@ public final class Settings { } - public static void setValue(String key, Object value) { + private static String loadEmailText() { + if (!EMAIL_FILE.exists()) + saveDefaultEmailText(); + StringBuilder str = new StringBuilder(); + try { + BufferedReader in = new BufferedReader(new FileReader(EMAIL_FILE)); + String s; + while ((s = in.readLine()) != null) + str.append(s); + in.close(); + } catch(IOException e) + { + } + return str.toString(); + } + + private static void saveDefaultEmailText() { + InputStream file = plugin.getResource("email.html"); + StringBuilder str = new StringBuilder(); + try { + BufferedReader in = new BufferedReader(new InputStreamReader(file, Charset.forName("utf-8"))); + String s; + while ((s = in.readLine()) != null) + str.append(s); + in.close(); + Files.touch(EMAIL_FILE); + Files.write(str.toString(), EMAIL_FILE, Charsets.UTF_8); + } + catch(Exception e) + { + } + } + + public static void setValue(String key, Object value) { instance.set(key, value); save(); } @@ -636,6 +674,12 @@ public final class Settings { changes = true; } + if (contains("Email.mailText")) + { + set("Email.mailText", null); + ConsoleLogger.showError("Remove Email.mailText from config, we now use the email.html file"); + } + if (changes) { plugin.getLogger().warning("Merged new Config Options - I'm not an error, please don't report me"); plugin.getLogger().warning("Please check your config.yml file for new configs!"); diff --git a/src/main/resources/email.html b/src/main/resources/email.html new file mode 100644 index 00000000..12f6cbd5 --- /dev/null +++ b/src/main/resources/email.html @@ -0,0 +1,16 @@ +

+Dear %playername%, +

+ +

+This is your new AuthMe password for the server %servername%: + +%generatedpass% + +%image% + +Do not forget to change password after login! +/changepassword %generatedpass% newPassword' + +See you on %servername%! +

\ No newline at end of file