Minecraft Java listener mit delay ausführen?
(btw. bin noch zu schlecht um Anfänger genannt zu werden)
ich will einen Afk Listener machen:
wenn der Spieler seine Position für 1minute nicht geändert hat, wird er in Afk status gesetzt
ich hätte jetzt gedacht man fängt so an:
@EventHandler
public void afkListener(PlayerMoveEvent e) {
Player player = e.getPlayer();
if (!e.hasChangedPosition()) {
}
}
Am besten keinen Lösungsvorschlag, sondern nur Tipps. Ich wills selber Lernen und nicht nur abschreiben
Danke
2 Antworten
Du wirst eine HashMap und einen Scheduler (Repeating) benötigen.
Hoffe das war ein guter Tipp in die richtige Richtung
Dann muss ich mich nochmal besser mit hashmaps ausernander setzen müssen. Ja vielen Dank für den Tipp
Speicher die aktuelle Position in einer Variable!
Nach einer Minute prüfst Du, ob die gespeicherte Variable (alte Position) mit der aktuellen Position noch übereinstimmt.
Wenn Ja = AFK, wenn Nein = Aktuelle Position erneut speichern.
Das ist an sich ein guter Ansatz, jedoch solltest du dabei auf keinen Fall das PlayerMoveEvent nutzen, da dies einfach absolut zu viel Leistung beansprucht. Mache es so wie Peter meinte, aber unabhängig von dem Event.
Vielen Dank, ich werds probieren :D