Minecraft Plugin programmieren erkennen ob Spieler auf einer Kante des Blockes steht?
Hallo, ich programmiere aktuell ein Minecraft TNTRun Plugin, die Blöcke und so werden alle entfernt, aber es gibt einen Bug, wenn ich auf eine Kante einer Blockes falle, wird der nicht entfernt. Im Anhang ist ein Bild und der Code. Vielen Dank im Voraus! Und nein, da ist leider kein Barrier drunter, das ist das kuriose!
if(Manager.isState(Manager.INGAME)) {
Player p = e.getPlayer();
if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.TNT) {
Block block = p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock();
Reseter.locations.add(p.getLocation().subtract(0.0D, 1.0D, 0.0D));
Bukkit.getScheduler().scheduleSyncDelayedTask(pl, new Runnable(
) {
@Override
public void run() {
block.setType(Material.AIR);
p.playEffect(p.getLocation().subtract(0.0D, 1.0D, 0.0D), Effect.SMOKE, 1);
}
}, 5);
}
}
3 Antworten
Ich würde die location des Spielers großzügiger wählen. Also nicht ein punkt sondern ein kleines Quadrat.
Dann alle blöcke holen die dieses Quadrat berührt und diese verschwinden lassen.
Wenn du dann auf ne kante oder ecke fällst verschwinden 2 bzw. 4 blöcke sodass man fällt.
Das ist die Minecraft Physik.....
aber ich such grad nach einer Lösung geb mit einen moment
Schraub mal die Spielerlocation runter die ist zu hoch. Sollte das nicht funktionieren hätte ich eine Idee die mit Vanilla zu tun hat und weniger mit einen Plugin habe ich bei meinem Server auch
Ich weiß nicht wie entwickelt du bist was Programmiereren anbelangt, wenn du nicht so weit bist, würde ich sagen das es nicht möglich ist. Aber wenn du dich mit Java auskennst, kannst du alles berechnen
danke ;D