• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Eine bestimmte Art von Blöcken in einem festgelegtem Bereich auswählen.

V

Verschraubt

Guest
Guten Abend,
ich wollte in einem Plugin folgendes erzielen: für einen Disco-Effekt sollten sich obsidian Blöcke in einer festgelegten Zone durch eine scheduler in regelmäßigen Abständen zu einem glowstone Block verändern. Meine Frage ist jetzt, wie ich obsidian Blöcke in einem Bereich auswählen kann.
Ich wäre über eine hilfreiche Antwort sehr dankbar.
Mit freundlichen Grüßen,
DasThema
 
Zuletzt bearbeitet von einem Moderator:

GPSforLEGENDS

Vorarbeiter
Registriert
21 März 2014
Beiträge
289
Alter
85
Diamanten
300
Minecraft
GPSforLEGENDS
1. Playerinteractevent
2. den Spieler 2 Blöcke anklicken lassen
3. Alle Blöcke in diesen checken lassen ob sie Obsidian sind.
4. wenn ja in eine Liste einfügen
5. die Blöcke aus der Liste im gewünschten Zeitabstand ändern.
 

GPSforLEGENDS

Vorarbeiter
Registriert
21 März 2014
Beiträge
289
Alter
85
Diamanten
300
Minecraft
GPSforLEGENDS
Du hast 2 Locations
Machst 3 Schleifen for(int i = loc1.getBlockX(); i < loc2.getBlockX; i++){
for(int i2 = loc1.getBlockY(); i < loc2.getBlockY; i2++){
for(int i3 = loc1.getBlockZ(); i < loc2.getBlockZ; i3++){
dann den Block an i, i2, i3 überprüfen und in einer Liste abspeichern.
 
V

Verschraubt

Guest
Okay. Habe das mal so probiert. Funktioniert aber leider nicht. Was habe ich falsch gemacht?
Code:
public static boolean inField(Location loc1, Location loc2, Location playerlocation) {
        ArrayList<Location> bloc = new ArrayList<>();

        boolean wert = true;

        for (int i1 = loc1.getBlockX(); i1 < loc2.getBlockX(); i1++) {
            for (int i2 = loc1.getBlockY(); i2 < loc2.getBlockY(); i2++) {
                for (int i3 = loc1.getBlockZ(); i3 < loc2.getZ(); i3++) {
                    Location xy = new Location(playerlocation.getWorld(), i1, i2, i3);
                    bloc.add(xy);
                }
            }
        }
        for (Location loc : bloc) {
            if (playerlocation == loc) {
                wert = true;
            } else {
                wert = false;
            }

        }

        return wert;

    }
 
Oben