package me.desht.chesscraft; import org.bukkit.Location; import org.bukkit.entity.Player; import java.util.HashMap; import java.util.Map; import java.util.UUID; /** * @author des * * Keeps track of players' last teleport position, and when they last logged out. * */ public class PlayerTracker { private final Map<UUID, Location> lastPos = new HashMap<UUID, Location>(); private final Map<UUID, Long> loggedOutAt = new HashMap<UUID, Long>(); public void teleportPlayer(Player player, Location loc) { setLastPos(player, player.getLocation()); ChessCraft.getInstance().getFX().playEffect(player.getLocation(), "teleport_out"); player.teleport(loc); ChessCraft.getInstance().getFX().playEffect(player.getLocation(), "teleport_in"); } public Location getLastPos(Player player) { return lastPos.get(player.getUniqueId()); } private void setLastPos(Player player, Location loc) { lastPos.put(player.getUniqueId(), loc); } public void playerLeft(Player player) { loggedOutAt.put(player.getUniqueId(), System.currentTimeMillis()); } public void playerRejoined(Player player) { loggedOutAt.remove(player.getUniqueId()); } public long getPlayerLeftAt(UUID who) { return loggedOutAt.containsKey(who) ? loggedOutAt.get(who) : 0; } }