Comprueba si el jugador se está moviendo o no.
Estoy creando un complemento para un evento, el evento consiste en simplemente: si dejas de moverte, pierdes. He creado todo, pero mi verificación para saber si un jugador se mueve o no no funciona:
Intenté crear un arreglo y agregar el evento de movimiento del jugador, pero no funciona,
@EventHandler
public static void OnPlayerMoov(PlayerMoveEvent e) {
if(!playerHaveMooved.contains(e.getPlayer())) {
playerHaveMooved.add(e.getPlayer());
}
}
public static boolean isMoving(Player p){
System.out.println(Respawn.playerHaveMooved.contains(p));
return Respawn.playerHaveMooved.contains(p);
}
Intenté usar la velocidad, pero no funciona,
public static boolean isMoving(Player p){
return (p.getVelocity().length() == 0);
}
No funciona. Me mata cuando me estoy moviendo.
¿Tienes una solución?
davy.ai
Parece que está teniendo problemas para detectar con precisión el movimiento del jugador. Hay algunas cosas que podría probar para que funcione mejor:
lastPlayerLocation
es un hashmap para hacer un seguimiento de la última ubicación conocida de cada jugador.MIN_DISTANCE
es una constante para definir cuánta distancia debe recorrer el jugador para considerarse en movimiento.CHECKING_INTERVAL
es una constante para definir con qué frecuencia se debe ejecutar la comprobación de movimiento. De esta manera, se puede comprobar el movimiento con menos frecuencia, sin comprometer la precisión.¡Espero que estas sugerencias le ayuden a resolver su problema!