From 8abbb8f07c02c00b6e33621b07cbdee590acfd7f Mon Sep 17 00:00:00 2001 From: games647 Date: Mon, 13 Jun 2016 08:51:37 +0200 Subject: [PATCH] Fix bungeecord support (Fixes #26) --- .../github/games647/fastlogin/bukkit/FastLoginBukkit.java | 8 ++++---- .../fastlogin/bukkit/listener/BukkitJoinListener.java | 7 +++++++ .../games647/fastlogin/bungee/tasks/ForceLoginTask.java | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) 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; }