Minecraft Plugin überprüfen ob ein Spieler zwischen vier Punkten ist?
Ich wollte grade mal ein Spawnprotect Plugin schreiben, aber ich scheitere iwie an der Überprüfung ob ein Spieler zwischen zwei Punkten ist. Hier ist mal das Event: http://hastebin.com/kicikukuqi.avrasm Ich will also überpfrüfen ob ein Spieler in dem Quadrat mit den vier Ecken minbx/maxbx und minbz/maxbz ist. (bx = Block Koordinate X). Ich glaube ich habe einen Logikfehler in meinem code, ich komme aber grade selber nicht drauf. Ich würde mich freuen wenn jemand mir helfen könnte. Wenn ich das Plugin im Spiel teste, dann kann ich nirgendwo mehr bauen. Habe mir zum Test mal die min/max koordinaten im Spiel ausgeben lassen, und die stimmen auch, aber auch wenn ich außerhalb des quadrates bin kann ich nicht bauen. Sorry wegen der Rechtschreibung, bin müde. Danke im voraus.
2 Antworten
Tausch alle | Operatoren durch den || Operatoren aus.
Die korrekte Logik wäre: bx > minbx && bx < maxbx && bz > minbz && bz < maxbz
Je nach dem auch mit größer oder gleich - beziehungsweise kleiner oder gleich - Operator.
Wenn nicht sicher ist, dass die als max und min definierten Werte wirklich der größte und kleinste sind, benötigst du die jeweils umgekehrte Abfrage zusätzlich noch als oder.
Dankeschön! Ich hab einfach die größer-/kleiner-Zeichen ausgetauscht.
Versuch folgendes:
Gib alle 6 Koordinaten (min, max und cur jeweils x und z) aus und überprüfe, ob alles ausgegebene so richtig ist.
Und statt
e.getPlayer().getTargetBlock((Set<Material>) null, 200).getLocation().getBlockX();
e.getClickedBlock().getLocation().getBlockX();