Spigot2FA/src/main/java/eu/oskar3123/spigot2fa/listener/JoinQuitListener.java

60 lines
1.6 KiB
Java

package eu.oskar3123.spigot2fa.listener;
import eu.oskar3123.spigot2fa.Main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
public class JoinQuitListener implements Listener
{
private Main plugin;
private Set<UUID> waitingForCode = new HashSet<>();
public JoinQuitListener(Main plugin)
{
this.plugin = plugin;
}
@EventHandler
public void onJoin(PlayerJoinEvent event)
{
boolean enabled = plugin.tfaHandler.hasEnabled2FA(event.getPlayer().getUniqueId());
if (!enabled)
{
return;
}
event.getPlayer().sendMessage("Enter 2FA code");
waitingForCode.add(event.getPlayer().getUniqueId());
}
@EventHandler
public void chat(AsyncPlayerChatEvent event)
{
if (!waitingForCode.contains(event.getPlayer().getUniqueId()))
{
return;
}
boolean correct = plugin.tfaHandler.matchCode(event.getPlayer(), event.getMessage());
waitingForCode.remove(event.getPlayer().getUniqueId());
event.setCancelled(true);
if (!correct)
{
final Player player = event.getPlayer();
Bukkit.getScheduler().runTask(plugin, () -> player.kickPlayer("Wrong code!"));
}
else
{
event.getPlayer().sendMessage("Logged in");
}
}
}