1. 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!

ServerPlugin Chunk mit Blöcken anzeigen lassen

Dieses Thema im Forum "Programmierung" wurde erstellt von BNLynxion, 21. Juli 2015.

  1. BNLynxion
    Offline

    BNLynxion

    Registriert seit:
    29. Juli 2014
    Beiträge:
    8
    Ort:
    Luzern Schweiz
    Minecraft:
    BNLynxion
    Moooin,

    Ich hab zurzeit bisl Kopfschmerzen von dem vielen Rechnen usw usw und brauch eure Hilfe...
    Evtl weiss einer von euch was ich falsch mach :p

    Also bis jetzt hab ich folgendes:

    Code (Text):
    1.         if (p.isOp()){          
    2.                
    3.             try {
    4.                 Chunk chunki = getChunk();
    5.                 int locx = (int) chunki.getX();
    6.                 //Location chunkint = new Location(chunki.getBlock((int)p.getLocation().getX(), (int)p.getLocation().getY(), (int)p.getLocation().getZ()));
    7.                 int locz = (int) chunki.getZ();
    8.                
    9.                 for (int x = 0; x < 16; x++) {
    10.                     for (int z = 0; z < 16; z++) {
    11.                         if (z == 15 || z == 0 || x == 15 || x ==  0) {
    12.                                 Location locr = new Location(Bukkit.getWorld(worldName), p.getLocation().getChunk().getX() + x, 0 ,p.getLocation().getChunk().getZ() + z);
    13.                                 int inita = chunk.getWorld().getHighestBlockAt(locr).getY();
    14.                                 Block changeblock = chunk.getBlock(x, inita, z);
    15.                                 //Block b = chunk.getBlock(x, y, z);
    16.                                 changeblock.getRelative(BlockFace.DOWN, 2);
    17.                                 changeblock.getLocation().add(x,2,z);
    18.                                 changeblock.setType(Material.GLOWSTONE);
    19.                                 p.sendMessage("" + chunk.getWorld().getHighestBlockAt(p.getLocation().getChunk().getX() + x ,p.getLocation().getChunk().getZ() + z).getY());
    20.                             }
    21.                         }
    22.                     }
    23.             } catch (Exception ue){
    24.                 ue.printStackTrace();
    25.             }
    26.         }

    So... bis dahin klappt alles die Blöcke werden gesetzt nur... laut meinem ChunkBorder nicht auf dem Chunk :(
    Es wird nur bei mir auf dem "Eck" Punkt das Quadrat erstellt.
    Meine Frage.... Wie erstelle ich genau auf dem Chunk diese Blöcke?
     
    #1
  2. Werbung
    Online

    Werbung

  3. Thalion
    Offline

    Thalion

    Registriert seit:
    22. Juli 2014
    Beiträge:
    25
    Ort:
    Berlin
    Minecraft:
    Spartaner_v1
    Hallöchen,
    ich verstehe deinen Code nicht ganz.
    Code (Javascript):
    1.  Block changeblock = chunk.getBlock(x, inita, z);
    2. //Block b = chunk.getBlock(x, y, );changeblock.getRelative(BlockFace.DOWN, 2);
    3. changeblock.getLocation().add(x,2,z);
    4. changeblock.setType(Material.GLOWSTONE);
    erstmal, Block ist verständlich.
    "getRelative(...);" gibt einen Block zurück, dein "changeblock" sollte davon eigentlich unberührt bleiben -> sinnlos.
    "getLocation().add(x,2,z);" ebenfalls sinnlos, da du auf Blöcke außerhalb des Chunks zugreifen würdest.
    ( e.g. [15,66,15].add(14,2,14) => Block [29,2,19], komplett anderer Chunk )

    Des weiteren, der Chunk besteht im unmodifizierten Fall aus 16x256x16 Blöcken, wie dann auf dem Chunk Blöcke "erstellen"? Oder meinst du, dass du an bestimmten Punkten des Chunks bestimmte Blöcke haben möchtest?

    Wäre nett, wenn das geklärt werden könnte.
    Mfg
    Thalion
     
    #2
  4. BNLynxion
    Offline

    BNLynxion

    Registriert seit:
    29. Juli 2014
    Beiträge:
    8
    Ort:
    Luzern Schweiz
    Minecraft:
    BNLynxion
    Also bis jetzt klappt ja alles nur jetzt kommt mit folgendem Code das raus:
    Code (Text):
    1.         if (p.isOp()){          
    2.                
    3.             try {
    4.                 Chunk chunki = getChunk();
    5.                 int locx = (int) chunki.getX();
    6.                 //Location chunkint = new Location(chunki.getBlock((int)p.getLocation().getX(), (int)p.getLocation().getY(), (int)p.getLocation().getZ()));
    7.                 int locz = (int) chunki.getZ();
    8.                
    9.                 for (int x = 0; x < 16; x++) {
    10.                     for (int z = 0; z < 16; z++) {
    11.                         if (z == 15 || z == 0 || x == 15 || x ==  0) {
    12.                                 Location locr = new Location(p.getWorld(), x, 0 ,z);
    13.                                 Block changeblock = chunk.getBlock(chunk.getWorld().getHighestBlockAt(locr).getX(),chunk.getWorld().getHighestBlockAt(locr).getY(), chunk.getWorld().getHighestBlockAt(locr).getZ());
    14.                                 //Block b = chunk.getBlock(x, y, z);
    15.                                 changeblock.getRelative(BlockFace.UP, 1);
    16.                                 changeblock.getLocation().add(x,1,z);
    17.                                 changeblock.setType(Material.GLOWSTONE);
    18.                                 p.sendMessage("" + changeblock);
    19.                             }
    20.                         }
    21.                     }
    22.             } catch (Exception ue){
    23.                 ue.printStackTrace();
    24.             }
    2015-07-21_13.11.19.png
     
    #3
  5. Thalion
    Offline

    Thalion

    Registriert seit:
    22. Juli 2014
    Beiträge:
    25
    Ort:
    Berlin
    Minecraft:
    Spartaner_v1
    Einfacher,
    du möchtest in die Ecken als obersten Block eines Chunks eine bestimmten Block haben, richtig?
     
    #4
  6. BNLynxion
    Offline

    BNLynxion

    Registriert seit:
    29. Juli 2014
    Beiträge:
    8
    Ort:
    Luzern Schweiz
    Minecraft:
    BNLynxion
    Problem wurde beim bukkit Forum gelöst :)
    Danke aber euch für die schnelle Hilfe war aber dringend
    Hier die Lösung:
    Code (Text):
    1. Chunk chunki = getChunk();
    2.             int locx = (int) chunki.getX();
    3.             //Location chunkint = new Location(chunki.getBlock((int)p.getLocation().getX(), (int)p.getLocation().getY(), (int)p.getLocation().getZ()));
    4.             int locz = (int) chunki.getZ();
    5.      
    6.             for (int x = 0; x < 16; x++) {
    7.                 for (int z = 0; z < 16; z++) {
    8.                     if (z == 15 || z == 0 || x == 15 || x ==  0) {
    9.                         Location locr = new Location(Bukkit.getWorld(worldName), p.getLocation().getChunk().getX()*16 + x, 0 ,p.getLocation().getChunk().getZ()*16 + z);
    10.                             int inita = p.getLocation().getChunk().getWorld().getHighestBlockAt(locr).getY();
    11.                             //Block changeblock = chunk.getBlock(x, inita, z);
    12.                             Block b = chunk.getBlock(locr.getBlockX(), inita, locr.getBlockZ());
    13.                             b.getRelative(BlockFace.DOWN, 2);
    14.                             b.getLocation().add(x,2,z);
    15.                             b.setType(Material.REDSTONE_TORCH_ON);
    16.                             //p.sendBlockChange(b.getLocation(), Material.GLOWSTONE, b.getData());
    17.                             //p.sendMessage("" + chunk.getWorld().getHighestBlockAt(p.getLocation().getChunk().getX() + x ,p.getLocation().getChunk().getZ() + z).getY());
    18.                         }
    19.                     }
    20.                 }
    War ein Koords Fehler
     

    Anhänge:

    #5