diff --git a/pom.xml b/pom.xml index 0eaf5ba..9459b71 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cc.baka9 CatSeedLogin - 1.4.4-SNAPSHOT + 1.4.5-SNAPSHOT CatSeedLogin https://www.mcbbs.net/thread-847859-1-1.html @@ -92,6 +92,11 @@ FoliaLib 1.1.5 + + org.apache.commons + commons-email + 1.5 + diff --git a/src/main/java/cc/baka9/catseedlogin/bukkit/CatScheduler.java b/src/main/java/cc/baka9/catseedlogin/bukkit/CatScheduler.java index 218c9b1..c5849ee 100644 --- a/src/main/java/cc/baka9/catseedlogin/bukkit/CatScheduler.java +++ b/src/main/java/cc/baka9/catseedlogin/bukkit/CatScheduler.java @@ -17,7 +17,7 @@ private static Method initTeleportAsync() { try { return Player.class.getMethod("teleportAsync", Location.class); } catch (NoSuchMethodException e) { - e.printStackTrace(); + throw new RuntimeException(e); } } return null; diff --git a/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java b/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java index 3530e73..7f6ade3 100644 --- a/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java +++ b/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java @@ -140,7 +140,6 @@ public void onEnable(){ @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { - // 当玩家退出时调用 timeoutManager.onPlayerQuit(event.getPlayer().getName()); } diff --git a/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java b/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java index 6398297..5742ff5 100644 --- a/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java +++ b/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java @@ -28,7 +28,6 @@ public class LoginPlayerHelper { private static final Set set = new HashSet<>(); private static Map playerExitTimes = new ConcurrentHashMap<>(); - private long timeoutDuration; public static List getList(){ return new ArrayList<>(set); @@ -98,19 +97,16 @@ public static boolean recordCurrentIP(Player player) { } LoginPlayer storedPlayer = Cache.getIgnoreCase(playerName); - LoginPlayerHelper helper = new LoginPlayerHelper(); if (storedPlayer != null) { List storedIPs = getStoredIPs(storedPlayer); if (storedIPs != null) { - long lastLoginTime = storedPlayer.getLastAction(); Long exitTime = playerExitTimes.get(playerName); - long timeoutInMilliseconds = Config.Settings.IPTimeout * 60 * 1000; if (Config.Settings.IPTimeout == 0) { return storedIPs.contains(currentIP); } else { - if (exitTime != null && storedIPs.contains(currentIP) && (System.currentTimeMillis() - exitTime) <= timeoutInMilliseconds) { + if (exitTime != null && storedIPs.contains(currentIP) && (System.currentTimeMillis() - exitTime) <= Config.Settings.IPTimeout * 60 * 1000) { return true; } } @@ -133,9 +129,6 @@ public void recordPlayerExitTime(String playerName) { - public void PlayerTimeoutManager() { - timeoutDuration = Config.Settings.IPTimeout * 60 * 1000; - } public void onPlayerQuit(String playerName) { if (Config.Settings.IPTimeout != 0 && isLogin(playerName)) { diff --git a/src/main/java/cc/baka9/catseedlogin/util/Mail.java b/src/main/java/cc/baka9/catseedlogin/util/Mail.java index 992d04a..a2937a3 100644 --- a/src/main/java/cc/baka9/catseedlogin/util/Mail.java +++ b/src/main/java/cc/baka9/catseedlogin/util/Mail.java @@ -1,12 +1,8 @@ package cc.baka9.catseedlogin.util; -import java.util.Date; -import java.util.Properties; - -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; +import org.apache.commons.mail.DefaultAuthenticator; +import org.apache.commons.mail.Email; +import org.apache.commons.mail.HtmlEmail; import cc.baka9.catseedlogin.bukkit.Config; @@ -17,47 +13,22 @@ private Mail() { public static void sendMail(String receiveMailAccount, String subject, String content) throws Exception { - Properties props = new Properties(); - props.setProperty("mail.transport.protocol", "smtp"); - props.setProperty("mail.smtp.host", Config.EmailVerify.EmailSmtpHost); - props.setProperty("mail.smtp.auth", "true"); - - final String smtpPort = Config.EmailVerify.EmailSmtpPort; - props.setProperty("mail.smtp.port", smtpPort); - + Email email = new HtmlEmail(); + email.setHostName(Config.EmailVerify.EmailSmtpHost); + email.setSmtpPort(Integer.parseInt(Config.EmailVerify.EmailSmtpPort)); + email.setAuthenticator(new DefaultAuthenticator(Config.EmailVerify.EmailAccount, Config.EmailVerify.EmailPassword)); if (Config.EmailVerify.SSLAuthVerify) { - props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); - props.setProperty("mail.smtp.socketFactory.fallback", "false"); - props.setProperty("mail.smtp.socketFactory.port", smtpPort); + email.setSSLOnConnect(true); } else { - // 如果 SSLAuthVerify 为 false,移除 SSL 相关的配置 - props.remove("mail.smtp.socketFactory.class"); - props.remove("mail.smtp.socketFactory.fallback"); - props.remove("mail.smtp.socketFactory.port"); + email.setStartTLSEnabled(true); } - - String emailAccount = Config.EmailVerify.EmailAccount; - String emailPassword = Config.EmailVerify.EmailPassword; - - Session session = Session.getInstance(props); - - // 设置为debug模式, 查看详细的发送 log - session.setDebug(true); - - // 创建邮件 - MimeMessage message = new MimeMessage(session); - message.setFrom(new InternetAddress(emailAccount, Config.EmailVerify.FromPersonal, "UTF-8")); - message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, "", "UTF-8")); - message.setSubject(subject, "UTF-8"); - message.setContent(content, Util.isOSLinux() ? "text/html; charset=UTF-8" : "text/html; charset=GBK"); - message.setSentDate(new Date()); - message.saveChanges(); - - // 发送 - Transport transport = session.getTransport(); - transport.connect(emailAccount, emailPassword); - transport.sendMessage(message, message.getAllRecipients()); - transport.close(); + email.setFrom(Config.EmailVerify.EmailAccount, Config.EmailVerify.FromPersonal); + email.setSubject(subject); + email.setMsg(content); + email.addTo(receiveMailAccount); + ((HtmlEmail) email).setCharset("UTF-8"); + ((HtmlEmail) email).setCharset("GBK"); + email.send(); } diff --git a/src/main/resources/emailVerify.yml b/src/main/resources/emailVerify.yml index 99b23b9..10af26f 100644 --- a/src/main/resources/emailVerify.yml +++ b/src/main/resources/emailVerify.yml @@ -3,5 +3,5 @@ EmailAccount: "763737569@qq.com" EmailPassword: "123456" EmailSmtpHost: "smtp.qq.com" EmailSmtpPort: "465" -SSLAuthVerify: false +SSLAuthVerify: true FromPersonal: "xxx服务器"