diff --git a/src/main/java/com/elchologamer/userlogin/listener/JoinQuitListener.java b/src/main/java/com/elchologamer/userlogin/listener/JoinQuitListener.java index bed5fc0..4ce7bdd 100644 --- a/src/main/java/com/elchologamer/userlogin/listener/JoinQuitListener.java +++ b/src/main/java/com/elchologamer/userlogin/listener/JoinQuitListener.java @@ -2,10 +2,18 @@ import com.elchologamer.userlogin.ULPlayer; import com.elchologamer.userlogin.UserLogin; + +import net.md_5.bungee.api.ChatColor; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result; public class JoinQuitListener implements Listener { @@ -17,6 +25,21 @@ public void onPlayerJoin(PlayerJoinEvent event) { ULPlayer.get(event.getPlayer()).onJoin(false); } + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) { + // Check if player already online + for(Player player : Bukkit.getOnlinePlayers()) { + ULPlayer ulPlayer = ULPlayer.get(player); + if(player.getName().equalsIgnoreCase(event.getName())) { + if(ulPlayer.isLoggedIn()) { + event.setLoginResult(Result.KICK_OTHER); + event.setKickMessage(ChatColor.RED + "This player is already online!"); + return; + } + } + } + } + @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { ULPlayer.get(event.getPlayer()).onQuit();