001package co.aikar.commands;
002
003import net.md_5.bungee.api.connection.ProxiedPlayer;
004import net.md_5.bungee.api.event.PlayerDisconnectEvent;
005import net.md_5.bungee.api.event.PostLoginEvent;
006import net.md_5.bungee.api.plugin.Listener;
007import net.md_5.bungee.api.plugin.Plugin;
008import net.md_5.bungee.event.EventHandler;
009
010import java.util.concurrent.TimeUnit;
011
012public class ACFBungeeListener implements Listener {
013
014    private final BungeeCommandManager manager;
015    private final Plugin plugin;
016
017    public ACFBungeeListener(BungeeCommandManager manager, Plugin plugin) {
018        this.manager = manager;
019        this.plugin = plugin;
020    }
021
022    @EventHandler
023    public void onPlayerJoin(PostLoginEvent loginEvent) {
024        ProxiedPlayer player = loginEvent.getPlayer();
025
026        //the client settings are sent after a successful login
027        Runnable task = () -> manager.readLocale(player);
028        plugin.getProxy().getScheduler().schedule(plugin, task, 1, TimeUnit.SECONDS);
029    }
030
031    @EventHandler
032    public void onDisconnect(PlayerDisconnectEvent disconnectEvent) {
033        //cleanup
034        ProxiedPlayer player = disconnectEvent.getPlayer();
035        manager.issuersLocale.remove(player.getUniqueId());
036    }
037}