[Java] (Minecraft Plugin) Wie kann ich alle 2 Sekunden die Eigenschaften eines bestimmten Blockes abfragen?
Hallo,
ich bin gerade an einem Java Plugin für Minecraft. Ich nutze Spigot 1.8.X und möchte so circa alle 2 Sekunden testen, ob an einer bestimmten Position ein Block bestimmte Eingenschaften hat. Das mit dem Testen der Eingeschaften weiß ich. Ich möchte nämlich die zweite Zeile eines Schildes abfragen. Nur weiß ich erstens nicht, wie ich alle 2 Sekunden etwas abfrage und wie ich einen Block bei den Koordinaten (0, 0, 0) testen kann. Ich hoffe es ist Verständlich was ich meine! Vielen Dank für eure Hilfe!
Mit freundlichen Grüßen ~Felix193
2 Antworten
Du kannst den Scheduler von Spigot verwenden, dir alle zwei sekunden den Block holen und überprüfen.
Suberer wäre es jedoch auf ein entsprechendes Event zu horchen, v.a. da das ressourcenschonender wäre (Wo es doch schon das schöne SignChangeEvent gibt).
Erstelle doch in der onEnable Methode einen Scheduler, der dann alle 2 sek wiederholt wird.
LG Atomsi
Ja... Das Problem könnte dadurch ausgelöst werden, dass während das Plugin diese Anfrage durchführt, für den Server noch gar keine Welt existiert, da diese ziemlich am Schluss geladen wird... Eine Lösung wäre den Scheduler an ein anderes Event zu knüpfen, zB. Das PlayerJoinEvent. Das kann man dann so modifizieren, dass trotzdem der Scheduler nur einmal läuft, aber dann halt erst gestartet wird, sobald ein Spieler joint. (headless Client?)
Hoffe ich konnte helfen.
Wenn du noch Fragen hast, können wir auch gerne mal über Skype oder TS labern.
LG Atomsi
Hallo, vielen Dank für deinen Lösungsansatz. Durch eine Rechereche konnte ich etwas finden und eine mittelmäßige Dokumentation. Leider funktioniert die Abfrage immer noch nicht, wäre gut, wenn Du mal drüberschaust. Das Plugin wird erfolgreich geladen und der Befehl unten geht auch! ;)
Hier der Link zum Quellcode:
Hi, das SignChangeEvent kann ich nicht nutzen, da das Schild von einem anderen Plugin editiert wird und es dies nicht erkennt.... Das hatte ich bereits versucht.
Die Option mit dem Scheduler habe ich gewählt. Leider funktioniert da etwas nicht. Wäre Nett, wenn Du mir helfen könntest:
http://pastebin.com/UZJ6hyc2