Weißt du, was "Async" bedeutet ? Das bedeutet, dass es nicht auf dem Hauptthread (Ist sowas wie ein Prozess gaub' ich [Google hilft]), sondern auf einen eigenen, extra dafür erstellten Thread ausgeführt wird. Deshalb bekommst du auch die Fehlermeldung

Asynchronous player tracker update!

. Versuch das mal:

[...]
public void gamemode(AsyncPlayerChatEvent e)
{
gm(e.getPlayer());
}

void gm(Player p)
{
if(p.getGameMode() == GameMode.SURVIVAL)
{
p.setGameMode(GameMode.CREATIVE);
}else{
p.setGameMode(GameMode.SURVIVAL);
}
}
[...]

(Außerdem gibt es extra Foren für solche Fragen.)

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.