Block holen, AN DEM ein block platziert wurde?
Wie hole ich mir den Block, an dem ein Block plaziert wurde?
Also ich platziere ein Stein auf Gras und ich will, dass der Block Gras zurückgegeben wird.
Wie mach ich das?
Es gibt ja die Möglichkeit, den Block zu entfernen, dann zu schauen, welchen Block der Spieler anschaut, und dann den Block nochmal zu platzieren (Oder wird das BlockPlaceEvent gecallt, bevor der Block platziert wurde?). Aber gibt es da nicht noch ne bessere Möglichkeit?
MfG MineMuse07
Ich rede von Bukkit/Spigot programmieren hehe
1 Antwort
@EventHandler
public void onPlaceBlock(BlockPlaceEvent event) {
Block block = event.getBlock();
World world = block.getWorld();
if (block.getType() == Material.STONE) {
Location location = block.getLocation();
Block blockAt = world.getBlockAt(location.clone().add(0, -1, 0));
if (blockAt.getType() == Material.GRASS_BLOCK) {
Block grassBlock = blockAt;
// Dein Block
}
}
}
Du musst dir den Block unter dem Stein mit world.getBlockAt(Location location) holen. Diese Location ist dabei eine Kopie der Location des Steinblocks, nur dass die y-Koordinate um 1 verringert wird. Dann wird noch abgefragt ob der Block an dieser neuen Location ein Grasblock ist und wenn ja, dann ist "blockAt" in diesem Beispielcode dein Grasblock.
Dann musst du zuerst alle x und z Koordinaten/Locations, die direkt neben dem Stein sind auf Grasblöcke überprüfen. Dazu müsstest du wissen wie das Koordinatensystem in Minecraft oder generell in Mathe funktioniert.
und wenn man den Block neben einem Grasblock plaziert aber an dem Grassblock?