diff --git a/CHANGELOG.md b/CHANGELOG.md index a278716f..6718ca29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ######1.9 +* 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 > * [API] Deprecated bukkit's password generator. Please use PasswordGenerator< platform specific player type > 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 d8fdd0b1..b975c4d2 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 @@ -14,6 +14,7 @@ import com.github.games647.fastlogin.bukkit.listener.protocollib.LoginSkinApplyL import com.github.games647.fastlogin.bukkit.listener.protocollib.StartPacketListener; import com.github.games647.fastlogin.bukkit.listener.protocolsupport.ProtocolSupportListener; import com.github.games647.fastlogin.bukkit.tasks.DelayedAuthHook; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import com.github.games647.fastlogin.core.shared.FastLoginCore; import java.security.KeyPair; @@ -35,16 +36,16 @@ public class FastLoginBukkit extends JavaPlugin { private final KeyPair keyPair = EncryptionUtil.generateKeyPair(); private boolean bungeeCord; - private final BukkitCore core = new BukkitCore(this); + private BukkitCore core; private boolean serverStarted; //1 minutes should be enough as a timeout for bad internet connection (Server, Client and Mojang) private final ConcurrentMap session = FastLoginCore.buildCache(1, -1); - - private BukkitAuthPlugin authPlugin; @Override public void onEnable() { + core = new BukkitCore(this); + core.loadConfig(); core.loadMessages(); @@ -112,7 +113,6 @@ public class FastLoginBukkit extends JavaPlugin { @Override public void onDisable() { - //clean up session.clear(); if (core != null) { @@ -160,6 +160,7 @@ public class FastLoginBukkit extends JavaPlugin { * @return interface to any supported auth plugin */ public BukkitAuthPlugin getAuthPlugin() { + AuthPlugin authPlugin = core.getAuthPlugin(); if (authPlugin == null) { try { Thread.sleep(1000); @@ -168,11 +169,11 @@ public class FastLoginBukkit extends JavaPlugin { } } - return authPlugin; + return (BukkitAuthPlugin) authPlugin; } public void setAuthPluginHook(BukkitAuthPlugin authPlugin) { - this.authPlugin = authPlugin; + core.setAuthPlugin(authPlugin); } public boolean isBungeeCord() { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java index 97aa8f05..124ffbbd 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/AuthMeHook.java @@ -1,6 +1,7 @@ package com.github.games647.fastlogin.bukkit.hooks; import com.avaje.ebeaninternal.api.ClassUtil; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import fr.xephi.authme.api.API; import fr.xephi.authme.api.NewAPI; @@ -14,7 +15,7 @@ import org.bukkit.entity.Player; * Bukkit: http://dev.bukkit.org/bukkit-plugins/authme-reloaded/ * Spigot: https://www.spigotmc.org/resources/authme-reloaded.6269/ */ -public class AuthMeHook implements BukkitAuthPlugin { +public class AuthMeHook implements AuthPlugin { private final boolean isNewAPIAvailable; diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java index 3822d279..5022e441 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/CrazyLoginHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import de.st_ddt.crazylogin.CrazyLogin; import de.st_ddt.crazylogin.data.LoginPlayerData; @@ -23,7 +24,7 @@ import org.bukkit.entity.Player; * * Bukkit: http://dev.bukkit.org/server-mods/crazylogin/ */ -public class CrazyLoginHook implements BukkitAuthPlugin { +public class CrazyLoginHook implements AuthPlugin { protected final CrazyLogin crazyLoginPlugin = CrazyLogin.getPlugin(); private final PlayerListener playerListener = getListener(); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LogItHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LogItHook.java index 6df52d26..33d3e232 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LogItHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LogItHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import io.github.lucaseasedup.logit.CancelledState; import io.github.lucaseasedup.logit.LogItCore; @@ -14,7 +15,7 @@ import org.bukkit.entity.Player; * Bukkit: Unknown * Spigot: Unknown */ -public class LogItHook implements BukkitAuthPlugin { +public class LogItHook implements AuthPlugin { @Override public boolean forceLogin(Player player) { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LoginSecurityHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LoginSecurityHook.java index 4e146e13..9dc8bf5a 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LoginSecurityHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/LoginSecurityHook.java @@ -1,6 +1,7 @@ package com.github.games647.fastlogin.bukkit.hooks; import com.github.games647.fastlogin.bukkit.FastLoginBukkit; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import com.lenis0012.bukkit.loginsecurity.LoginSecurity; import com.lenis0012.bukkit.loginsecurity.session.AuthService; import com.lenis0012.bukkit.loginsecurity.session.PlayerSession; @@ -16,7 +17,7 @@ import org.bukkit.entity.Player; * Bukkit: http://dev.bukkit.org/bukkit-plugins/loginsecurity/ * Spigot: https://www.spigotmc.org/resources/loginsecurity.19362/ */ -public class LoginSecurityHook implements BukkitAuthPlugin { +public class LoginSecurityHook implements AuthPlugin { private final FastLoginBukkit plugin = (FastLoginBukkit) Bukkit.getPluginManager().getPlugin("FastLogin"); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/RoyalAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/RoyalAuthHook.java index 0fef0c76..877134ae 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/RoyalAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/RoyalAuthHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -19,7 +20,7 @@ import org.royaldev.royalauth.RoyalAuth; * * Bukkit: http://dev.bukkit.org/bukkit-plugins/royalauth/ */ -public class RoyalAuthHook implements BukkitAuthPlugin { +public class RoyalAuthHook implements AuthPlugin { private final RoyalAuth royalAuthPlugin = (RoyalAuth) Bukkit.getPluginManager().getPlugin("RoyalAuth"); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java index 228dca7f..90f4d0b0 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/UltraAuthHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -20,7 +21,7 @@ import ultraauth.managers.PlayerManager; * Bukkit: http://dev.bukkit.org/bukkit-plugins/ultraauth-aa/ * Spigot: https://www.spigotmc.org/resources/ultraauth.17044/ */ -public class UltraAuthHook implements BukkitAuthPlugin { +public class UltraAuthHook implements AuthPlugin { protected final Plugin ultraAuthPlugin = Main.main; diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java index 7deb16e2..e3fe15c0 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hooks/xAuthHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import de.luricos.bukkit.xAuth.xAuth; import de.luricos.bukkit.xAuth.xAuthPlayer; @@ -20,7 +21,7 @@ import org.bukkit.entity.Player; * * Bukkit: http://dev.bukkit.org/bukkit-plugins/xauth/ */ -public class xAuthHook implements BukkitAuthPlugin { +public class xAuthHook implements AuthPlugin { protected final xAuth xAuthPlugin = xAuth.getPlugin(); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/DelayedAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/DelayedAuthHook.java index 33ca0b0c..51cfd5f9 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/DelayedAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/tasks/DelayedAuthHook.java @@ -2,18 +2,19 @@ package com.github.games647.fastlogin.bukkit.tasks; import com.github.games647.fastlogin.bukkit.FastLoginBukkit; import com.github.games647.fastlogin.bukkit.hooks.AuthMeHook; -import com.github.games647.fastlogin.bukkit.hooks.BukkitAuthPlugin; import com.github.games647.fastlogin.bukkit.hooks.CrazyLoginHook; import com.github.games647.fastlogin.bukkit.hooks.LogItHook; import com.github.games647.fastlogin.bukkit.hooks.LoginSecurityHook; import com.github.games647.fastlogin.bukkit.hooks.UltraAuthHook; import com.github.games647.fastlogin.bukkit.hooks.xAuthHook; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import com.google.common.collect.Lists; -import java.util.List; +import java.util.ArrayList; import java.util.logging.Level; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; public class DelayedAuthHook implements Runnable { @@ -37,12 +38,12 @@ public class DelayedAuthHook implements Runnable { } private boolean registerHooks() { - BukkitAuthPlugin authPluginHook = null; + AuthPlugin authPluginHook = null; try { - List> supportedHooks = Lists.newArrayList(AuthMeHook.class + ArrayList>> supportedHooks = Lists.newArrayList(AuthMeHook.class , CrazyLoginHook.class, LogItHook.class, LoginSecurityHook.class, UltraAuthHook.class , xAuthHook.class); - for (Class clazz : supportedHooks) { + for (Class> clazz : supportedHooks) { String pluginName = clazz.getSimpleName().replace("Hook", ""); //uses only member classes which uses AuthPlugin interface (skip interfaces) if (Bukkit.getServer().getPluginManager().getPlugin(pluginName) != null) { @@ -63,7 +64,7 @@ public class DelayedAuthHook implements Runnable { } if (plugin.getAuthPlugin() == null) { - plugin.setAuthPluginHook(authPluginHook); + plugin.getCore().setAuthPlugin(authPluginHook); } return true; 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 67c12f90..9f7d6aab 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 @@ -23,27 +23,25 @@ import net.md_5.bungee.config.YamlConfiguration; */ public class FastLoginBungee extends Plugin { - private final BungeeCore loginCore = new BungeeCore(this); - private BungeeAuthPlugin bungeeAuthPlugin; - private Configuration config; - private final ConcurrentMap session = Maps.newConcurrentMap(); + private BungeeCore core; + private Configuration config; + @Override public void onEnable() { - loginCore.loadConfig(); - loginCore.loadMessages(); - 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); - loginCore.setMojangApiConnector(mojangApi); + core.setMojangApiConnector(mojangApi); - if (!loginCore.setupDatabase()) { + if (!core.setupDatabase()) { return; } } catch (IOException ioExc) { @@ -51,6 +49,9 @@ public class FastLoginBungee extends Plugin { return; } + core.loadConfig(); + core.loadMessages(); + //events getProxy().getPluginManager().registerListener(this, new PlayerConnectionListener(this)); getProxy().getPluginManager().registerListener(this, new PluginMessageListener(this)); @@ -66,15 +67,15 @@ public class FastLoginBungee extends Plugin { @Override public void onDisable() { - loginCore.close(); + core.close(); } public BungeeCore getCore() { - return loginCore; + return core; } public void setAuthPluginHook(BungeeAuthPlugin authPlugin) { - this.bungeeAuthPlugin = authPlugin; + core.setAuthPlugin(authPlugin); } public Configuration getConfig() { @@ -91,13 +92,13 @@ public class FastLoginBungee extends Plugin { * @return the auth hook for BungeeCord. null if none found */ public BungeeAuthPlugin getBungeeAuthPlugin() { - return bungeeAuthPlugin; + return (BungeeAuthPlugin) core.getAuthPlugin(); } private void registerHook() { Plugin plugin = getProxy().getPluginManager().getPlugin("BungeeAuth"); if (plugin != null) { - bungeeAuthPlugin = new BungeeAuthHook(); + core.setAuthPlugin(new BungeeAuthHook()); getLogger().info("Hooked into BungeeAuth"); } } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java index c59c132d..10e43b37 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java @@ -1,5 +1,7 @@ package com.github.games647.fastlogin.bungee.hooks; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; + import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.Date; @@ -20,7 +22,7 @@ import net.md_5.bungee.api.connection.ProxiedPlayer; * * Spigot: https://www.spigotmc.org/resources/bungeeauth.493/ */ -public class BungeeAuthHook implements BungeeAuthPlugin { +public class BungeeAuthHook implements AuthPlugin { //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Login.java#L32 private final Tables databaseConnection = new Tables(); 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 79fda1a4..fdbe7e52 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 @@ -3,6 +3,7 @@ package com.github.games647.fastlogin.core.shared; import com.github.games647.fastlogin.core.AuthStorage; import com.github.games647.fastlogin.core.CompatibleCacheBuilder; import com.github.games647.fastlogin.core.SharedConfig; +import com.github.games647.fastlogin.core.hooks.AuthPlugin; import com.github.games647.fastlogin.core.hooks.DefaultPasswordGenerator; import com.github.games647.fastlogin.core.hooks.PasswordGenerator; import com.github.games647.fastlogin.core.importer.AutoInImporter; @@ -65,8 +66,9 @@ public abstract class FastLoginCore { private final SharedConfig sharedConfig; private MojangApiConnector mojangApiConnector; - private PasswordGenerator passwordGenerator = new DefaultPasswordGenerator<>(); private AuthStorage storage; + private PasswordGenerator passwordGenerator = new DefaultPasswordGenerator<>(); + private AuthPlugin authPlugin; public FastLoginCore(Map config) { this.pendingLogins = FastLoginCore.buildCache(5, 0); @@ -178,6 +180,14 @@ public abstract class FastLoginCore { return pendingConfirms; } + public AuthPlugin getAuthPlugin() { + return authPlugin; + } + + public void setAuthPlugin(AuthPlugin authPlugin) { + this.authPlugin = authPlugin; + } + public void close() { if (storage != null) { storage.close();