package me.gnat008.perworldinventory.listeners.player; import me.gnat008.perworldinventory.ConsoleLogger; import me.gnat008.perworldinventory.data.players.PWIPlayerManager; import me.gnat008.perworldinventory.groups.Group; import me.gnat008.perworldinventory.groups.GroupManager; import org.bukkit.Location; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerTeleportEvent; import javax.inject.Inject; /** * Listens for {@link PlayerTeleportEvent} and adds players to the cache. */ public class PlayerTeleportListener implements Listener { private GroupManager groupManager; private PWIPlayerManager playerManager; @Inject PlayerTeleportListener(GroupManager groupManager, PWIPlayerManager playerManager) { this.groupManager = groupManager; this.playerManager = playerManager; } @EventHandler(priority = EventPriority.MONITOR) public void onPlayerTeleport(PlayerTeleportEvent event) { if (event.isCancelled()) { return; } Location from = event.getFrom(); Location to = event.getTo(); if (from.getWorld().equals(to.getWorld())) { return; } ConsoleLogger.debug("[EVENTS] Player '" + event.getPlayer().getName() + "' going from world '" + from + "' to world '" + to + "'"); Group groupFrom = groupManager.getGroupFromWorld(from.getWorld().getName()); Group groupTo = groupManager.getGroupFromWorld(to.getWorld().getName()); if (groupFrom.equals(groupTo)) { return; } playerManager.addPlayer(event.getPlayer(), groupFrom); } }