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 90520c39..9d91d451 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 @@ -134,14 +134,14 @@ public class FastLoginBukkit extends JavaPlugin { //clean up session.clear(); + if (core != null) { + core.close(); + } + //remove old blacklists for (Player player : getServer().getOnlinePlayers()) { player.removeMetadata(getName(), this); } - - if (core != null) { - core.close(); - } } public FastLoginCore getCore() { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BukkitJoinListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BukkitJoinListener.java index 8ead5833..eb6af793 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BukkitJoinListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BukkitJoinListener.java @@ -11,6 +11,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent.Result; +import org.bukkit.event.player.PlayerQuitEvent; /** * This listener tells authentication plugins if the player has a premium account and we checked it successfully. So the @@ -42,4 +43,10 @@ public class BukkitJoinListener implements Listener { Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new ForceLoginTask(plugin, player), DELAY_LOGIN); } } + + @EventHandler(ignoreCancelled = true) + public void onPlayerQuit(PlayerQuitEvent quitEvent) { + Player player = quitEvent.getPlayer(); + player.removeMetadata(plugin.getName(), plugin); + } } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java index 9f02f9ee..6f9e93d6 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java @@ -31,7 +31,7 @@ public class ForceLoginTask implements Runnable { BungeeLoginSession session = plugin.getSession().get(pendingConnection); PlayerProfile playerProfile = session.getProfile(); - if (player.isConnected()) { + if (!player.isConnected()) { return; }