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}