public void run() { for (String name : lastLoc.keySet()) { Player player = plugin.getServer().getPlayer(name); if (player == null) { removePlayer(name); } else { // workaround for bukkit issue String prevWorld = lastLoc.get(name).getWorld().getName(); String curWorld = player.getLocation().getWorld().getName(); if (prevWorld.equals(curWorld)) { if (player.getLocation().distance(lastLoc.get(name)) < 1) { continue; } } // if distance between player's current location and stored // location is less than 1, this move is not active; if active // and ignore vehicle movement is set and player in vehicle, // then update location, but don't count this move as active addPlayer(player); if (!isIgnoreVehicleMovement || !player.isInsideVehicle()) { afkBooter.getPlayerActivity().recordActivity(name); } } } }
public MovementTracker(AfkBooter afkBooter) { this.afkBooter = afkBooter; this.plugin = afkBooter.getPlugin(); // load configuration loadConfig(); // initialize with current online players Player[] players = plugin.getServer().getOnlinePlayers(); for (Player player : players) { addPlayer(player); } afkBooter.writeDebugMsg("created MovementTracker object."); }