package com.aionemu.gameserver.taskmanager.tasks;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.aionemu.gameserver.model.gameobjects.Creature;
import com.aionemu.gameserver.taskmanager.AbstractPeriodicTaskManager;
/**
* @author ATracer
*/
public class PlayerMoveTaskManager extends AbstractPeriodicTaskManager {
private final Map<Integer, Creature> movingPlayers = new ConcurrentHashMap<>();
private PlayerMoveTaskManager() {
super(200);
}
public void addPlayer(Creature player) {
movingPlayers.put(player.getObjectId(), player);
}
public void removePlayer(Creature player) {
movingPlayers.remove(player.getObjectId());
}
@Override
public void run() {
for (Creature player : movingPlayers.values()) {
if (player.isSpawned())
player.getMoveController().moveToDestination();
else
removePlayer(player);
}
}
public static final PlayerMoveTaskManager getInstance() {
return SingletonHolder.INSTANCE;
}
private static final class SingletonHolder {
private static final PlayerMoveTaskManager INSTANCE = new PlayerMoveTaskManager();
}
}