Variable no restablecer cuando el comando se ejecuta nuevamente
Pregunta
Tengo un código que genera la experiencia total del jugador.
El problema es que el valor XP que genera no cambia si el XP real lo hace. Por ejemplo, en el nivel 50,000, el XP fue de 2,147,483,647. Cuando el nivel cayó a 4, el valor de XP permaneció igual.
if (cmd.getName().equalsIgnoreCase("checkxp")) {
// If person is null, it's not a player!
if (person == null) {
sender.sendMessage("This command can only be used by a player, sorry!");
return false;
} else {
int curxp;
Player player = (Player) sender;
curxp = player.getTotalExperience();
sender.sendMessage("You currently have: " + curxp + " XP!");
return true;
}
}
¿Cómo hago que este valor se reinicie después de que se ejecuta para que vuelva a verificar el XP y actualiza la variable con la nueva cantidad?
Solución
Mirando expasiones de expiencias, parece que jugar con experiencia en lugar de niveles es el camino a seguir.
Así que usa setTotalExperience()
y getTotalExperience()
por ahora.
Una vez que haga que todo funcione, intente agregar soporte para los niveles. ¿Tal vez hay un convertidor en algún lugar para convertir los niveles para experimentar y experiencia a niveles? Si no, aquí están el gráficos de conversión.
Otros consejos
Si no actualiza su Player
objeto que parece que viene de sender
contendrá los valores antiguos, así que verifico eso sender
está entrando con nuevos datos.