diff --git a/CHANGELOG.md b/CHANGELOG.md index 6718ca29..d2989e43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ######1.9 +* Upgrade to Java 8 * Drop support for LoginSecurity 1.X since 2.X seems to be stable * Refactored/Cleaned up a lot of code * [API] Deprecated platform specific authplugin. Please use AuthPlugin< platform specific player type > diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitCore.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitCore.java index 6e58d241..3d5ebb8b 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitCore.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BukkitCore.java @@ -1,11 +1,13 @@ package com.github.games647.fastlogin.bukkit; import com.github.games647.fastlogin.core.shared.FastLoginCore; +import com.github.games647.fastlogin.core.shared.MojangApiConnector; import com.google.common.base.Charsets; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.io.File; import java.io.InputStreamReader; +import java.util.List; import java.util.concurrent.ThreadFactory; import java.util.logging.Logger; @@ -73,4 +75,9 @@ public class BukkitCore extends FastLoginCore { public void loadConfig() { plugin.saveDefaultConfig(); } + + @Override + public MojangApiConnector makeApiConnector(Logger logger, List addresses, int requests) { + return new MojangApiBukkit(logger, addresses, requests); + } } diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java index c7482801..67e821bf 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java @@ -18,7 +18,6 @@ import com.github.games647.fastlogin.core.hooks.AuthPlugin; import com.github.games647.fastlogin.core.shared.FastLoginCore; import java.security.KeyPair; -import java.util.List; import java.util.concurrent.ConcurrentMap; import java.util.logging.Level; @@ -48,12 +47,6 @@ public class FastLoginBukkit extends JavaPlugin { core.loadConfig(); core.loadMessages(); - - List ipAddresses = getConfig().getStringList("ip-addresses"); - int requestLimit = getConfig().getInt("mojang-request-limit"); - MojangApiBukkit mojangApi = new MojangApiBukkit(getLogger(), ipAddresses, requestLimit); - core.setMojangApiConnector(mojangApi); - try { if (ClassUtil.isPresent("org.spigotmc.SpigotConfig")) { bungeeCord = Class.forName("org.spigotmc.SpigotConfig").getDeclaredField("bungee").getBoolean(null); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java index 45f9bba3..297f1576 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java @@ -83,7 +83,7 @@ public class VerifyResponseTask implements Runnable { String serverId = (new BigInteger(serverIdHash)).toString(16); String username = session.getUsername(); - if (plugin.getCore().getMojangApiConnector().hasJoinedServer(session, serverId)) { + if (plugin.getCore().getApiConnector().hasJoinedServer(session, serverId)) { plugin.getLogger().log(Level.FINE, "Player {0} has a verified premium account", username); session.setVerified(true); diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/BungeeCore.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/BungeeCore.java index 0422fc2b..fc939b4d 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/BungeeCore.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/BungeeCore.java @@ -1,12 +1,12 @@ package com.github.games647.fastlogin.bungee; import com.github.games647.fastlogin.core.shared.FastLoginCore; +import com.github.games647.fastlogin.core.shared.MojangApiConnector; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; +import java.util.List; import java.util.Map; import java.util.concurrent.ThreadFactory; import java.util.logging.Level; @@ -28,8 +28,8 @@ public class BungeeCore extends FastLoginCore { private final FastLoginBungee plugin; - public BungeeCore(FastLoginBungee plugin) { - super(generateConfigMap(plugin.getConfig())); + public BungeeCore(FastLoginBungee plugin, Configuration config) { + super(generateConfigMap(config)); this.plugin = plugin; } @@ -57,7 +57,7 @@ public class BungeeCore extends FastLoginCore { @Override public void loadMessages() { try { - saveDefaultFile("messages.yml"); + plugin.saveDefaultFile("messages.yml"); Configuration defaults = ConfigurationProvider.getProvider(YamlConfiguration.class) .load(getClass().getResourceAsStream("/messages.yml")); @@ -82,18 +82,11 @@ public class BungeeCore extends FastLoginCore { getDataFolder().mkdir(); } - saveDefaultFile("config.yml"); + plugin.saveDefaultFile("config.yml"); } - private void saveDefaultFile(String fileName) { - File configFile = new File(getDataFolder(), fileName); - if (!configFile.exists()) { - try (InputStream in = plugin.getResourceAsStream(fileName)) { - Files.copy(in, configFile.toPath()); - } catch (IOException ioExc) { - getLogger().log(Level.SEVERE, "Error saving default " + fileName, ioExc); - } - } + @Override + public MojangApiConnector makeApiConnector(Logger logger, List addresses, int requests) { + return new MojangApiBungee(logger, addresses, requests); } - } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java index b25d28f4..2132bdeb 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java @@ -8,7 +8,8 @@ import com.google.common.collect.Maps; import java.io.File; import java.io.IOException; -import java.util.List; +import java.io.InputStream; +import java.nio.file.Files; import java.util.concurrent.ConcurrentMap; import java.util.logging.Level; @@ -30,17 +31,13 @@ public class FastLoginBungee extends Plugin { @Override public void onEnable() { + saveDefaultFile("config.yml"); + try { File configFile = new File(getDataFolder(), "config.yml"); config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile); - core = new BungeeCore(this); - - List ipAddresses = getConfig().getStringList("ip-addresses"); - int requestLimit = getConfig().getInt("mojang-request-limit"); - MojangApiBungee mojangApi = new MojangApiBungee(getLogger(), ipAddresses, requestLimit); - core.setMojangApiConnector(mojangApi); - + core = new BungeeCore(this, config); if (!core.setupDatabase()) { return; } @@ -70,6 +67,17 @@ public class FastLoginBungee extends Plugin { core.close(); } + public void saveDefaultFile(String fileName) { + File configFile = new File(getDataFolder(), fileName); + if (!configFile.exists()) { + try (InputStream in = getResourceAsStream(fileName)) { + Files.copy(in, configFile.toPath()); + } catch (IOException ioExc) { + getLogger().log(Level.SEVERE, "Error saving default " + fileName, ioExc); + } + } + } + public BungeeCore getCore() { return core; } diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java index a37a7f6f..0f0c0c40 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java @@ -16,6 +16,7 @@ import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; @@ -65,7 +66,8 @@ public abstract class FastLoginCore

{ private final Set pendingConfirms = Sets.newHashSet(); private final SharedConfig sharedConfig; - private MojangApiConnector mojangApiConnector; + private final MojangApiConnector apiConnector; + private AuthStorage storage; private PasswordGenerator

passwordGenerator = new DefaultPasswordGenerator<>(); private AuthPlugin

authPlugin; @@ -73,14 +75,14 @@ public abstract class FastLoginCore

{ public FastLoginCore(Map config) { this.pendingLogins = FastLoginCore.buildCache(5, 0); this.sharedConfig = new SharedConfig(config); + + List ipAddresses = sharedConfig.get("ip-addresses"); + int requestLimit = sharedConfig.get("mojang-request-limit"); + this.apiConnector = makeApiConnector(getLogger(), ipAddresses, requestLimit); } - public void setMojangApiConnector(MojangApiConnector mojangApiConnector) { - this.mojangApiConnector = mojangApiConnector; - } - - public MojangApiConnector getMojangApiConnector() { - return mojangApiConnector; + public MojangApiConnector getApiConnector() { + return apiConnector; } public AuthStorage getStorage() { @@ -101,6 +103,8 @@ public abstract class FastLoginCore

{ public abstract void loadConfig(); + public abstract MojangApiConnector makeApiConnector(Logger logger, List addresses, int requests); + public boolean setupDatabase() { String driver = sharedConfig.get("driver"); String host = sharedConfig.get("host", ""); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java index abd4380a..2f1c233f 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/JoinManagement.java @@ -38,7 +38,7 @@ public abstract class JoinManagement { UUID premiumUUID = null; if (sharedConfig.get("nameChangeCheck", false) || sharedConfig.get("autoRegister", false)) { - premiumUUID = core.getMojangApiConnector().getPremiumUUID(username); + premiumUUID = core.getApiConnector().getPremiumUUID(username); } if (premiumUUID == null