diff --git a/.gitignore b/.gitignore
index 60893af6..c7854a6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,26 @@
-# Eclipse stuff
-/.classpath
-/.project
-/.settings
+# Eclipse
+.classpath
+.project
+.settings/
# NetBeans
-*/nbproject
+nbproject/
nb-configuration.xml
-# maven
-*/target
+# Maven
+target/
-# vim
+# Vim
.*.sw[a-p]
# virtual machine crash logs, see https://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# various other potential build files
-*/build/
-/bin
-/dist
-/manifest.mf
+build/
+bin/
+dist/
+manifest.mf
*.log
# Mac filesystem dust
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index dc61c708..fbbfd514 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -97,6 +97,7 @@
com.github.games647
fastlogin.core
+ ${project.version}
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 cebe9efe..ebbb8624 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,10 +1,16 @@
package com.github.games647.fastlogin.bukkit.hooks;
+import com.github.games647.fastlogin.bukkit.BukkitLoginSession;
+import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
import com.github.games647.fastlogin.core.hooks.AuthPlugin;
import fr.xephi.authme.api.v3.AuthMeApi;
+import fr.xephi.authme.events.RestoreSessionEvent;
import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
/**
* GitHub: https://github.com/Xephi/AuthMeReloaded/
@@ -15,7 +21,24 @@ import org.bukkit.entity.Player;
*
* Spigot: https://www.spigotmc.org/resources/authme-reloaded.6269/
*/
-public class AuthMeHook implements AuthPlugin {
+public class AuthMeHook implements AuthPlugin, Listener {
+
+ private final FastLoginBukkit plugin;
+
+ public AuthMeHook(FastLoginBukkit plugin) {
+ this.plugin = plugin;
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
+ public void onSessionRestore(RestoreSessionEvent restoreSessionEvent) {
+ Player player = restoreSessionEvent.getPlayer();
+
+ String id = '/' + player.getAddress().getAddress().getHostAddress() + ':' + player.getAddress().getPort();
+ BukkitLoginSession session = plugin.getLoginSessions().get(id);
+ if (session != null && session.isVerified()) {
+ restoreSessionEvent.setCancelled(true);
+ }
+ }
@Override
public boolean forceLogin(Player player) {
diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/JoinListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/JoinListener.java
index 24185685..b7d28869 100644
--- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/JoinListener.java
+++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/JoinListener.java
@@ -49,6 +49,7 @@ public class JoinListener implements Listener {
public void onPlayerQuit(PlayerQuitEvent quitEvent) {
Player player = quitEvent.getPlayer();
player.removeMetadata(plugin.getName(), plugin);
+
plugin.getCore().getPendingConfirms().remove(player.getUniqueId());
}
}
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 6be5c2b8..1237e53c 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
@@ -15,6 +15,7 @@ import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
+import org.bukkit.event.Listener;
public class DelayedAuthHook implements Runnable {
@@ -53,6 +54,10 @@ public class DelayedAuthHook implements Runnable {
return false;
}
+ if (authPluginHook instanceof Listener) {
+ Bukkit.getPluginManager().registerEvents((Listener) authPluginHook, plugin);
+ }
+
if (plugin.getCore().getAuthPluginHook() == null) {
plugin.getLog().info("Hooking into auth plugin: {}", authPluginHook.getClass().getSimpleName());
plugin.getCore().setAuthPluginHook(authPluginHook);
diff --git a/bungee/pom.xml b/bungee/pom.xml
index e6db1eb6..15ebfd88 100644
--- a/bungee/pom.xml
+++ b/bungee/pom.xml
@@ -71,6 +71,7 @@
${project.groupId}
fastlogin.core
+ ${project.version}