package com.w67clement.mineapi.nms;
import com.w67clement.mineapi.system.ProtocolInjector;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
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.PlayerLoginEvent;
public class ProtocolManager implements Listener
{
private ProtocolInjector injector;
private ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(10);
public ProtocolManager(ProtocolInjector injector)
{
this.injector = injector;
}
public void disable()
{
Bukkit.getOnlinePlayers().forEach(this.injector::removeChannel);
this.injector.disable();
}
@EventHandler(priority = EventPriority.MONITOR)
public void onJoin(final PlayerLoginEvent e)
{
final Player player = e.getPlayer();
if ((!player.isBanned()) && (e.getResult() == PlayerLoginEvent.Result.ALLOWED))
{
this.threadPool.schedule(() -> this.injector.addChannel(player), 100, TimeUnit.MILLISECONDS);
}
}
}