package tc.oc.lobby.bukkit.listeners;
import com.google.inject.Inject;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import tc.oc.commons.bukkit.teleport.Navigator;
import tc.oc.commons.core.plugin.PluginFacet;
import tc.oc.lobby.bukkit.portals.Portal;
import tc.oc.lobby.bukkit.portals.PortalsConfig;
import java.util.HashSet;
import java.util.Set;
public class PortalsListener implements PluginFacet, Listener {
private final Set<Portal> portals = new HashSet();
private PortalsConfig config;
@Inject
PortalsListener(PortalsConfig config) {
this.config = config;
}
public void enable() {
for (Portal portal : config.loadPortals()) {
this.portals.add(portal);
}
}
@EventHandler(priority = EventPriority.MONITOR)
public void move(PlayerMoveEvent event) {
for (Portal portal : portals) {
if (portal.getCuboid().contains(event.getPlayer().getLocation().position())) {
Navigator.Connector connector = portal.getConnector();
if(connector.isConnectable()) {
connector.teleport(event.getPlayer());
break;
}
}
}
}
}