Solved Clear many blocks at once.

Discussion in 'Plugin Development' started by KingFaris11, Jan 23, 2015.

Thread Status:
Not open for further replies.
  1. Hi, I'm trying to clear a 1001 * Max world height - 5 * 1001 area.

    My code:
    Code:
    int centerX = (int) this.centerLocation.getX(), centerY = (int) this.centerLocation.getY(), centerZ = (int) this.centerLocation.getZ();
    World world = this.centerLocation.getWorld();
    for (int y = 5; y < world.getMaxHeight(); y++) {
        for (int x = centerX - 501; x < centerX + 501; x++) {
            for (int z = centerZ - 501; z < centerZ + 501; z++) {
                Block block = world.getBlockAt(x, y, z);
                if (block.getType() != Material.AIR) {
                  block.setType(Material.AIR);
                }
            }
        }
    }
    
    I know this is very inefficient and will lag the server thread, etc. which it does, so much so that I get the following error and the server crashes:
    Code:
    java.lang.Error
        at net.minecraft.server.v1_8_R1.World.a(World.java:2062)
        at net.minecraft.server.v1_8_R1.World.c(World.java:2090)
        at net.minecraft.server.v1_8_R1.World.x(World.java:2028)
        at net.minecraft.server.v1_8_R1.World.setTypeAndData(World.java:304)
        at org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock.setTypeIdAndData(CraftBlock.java:137)
        at org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock.setTypeId(CraftBlock.java:130)
        at org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock.setType(CraftBlock.java:121)
        at org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock.setType(CraftBlock.java:116)
        at com.faris.game.MazeGenerator.clearLandscape(MazeGenerator.java:49)
        at com.faris.game.MazeGenerator.generate(MazeGenerator.java:34)
        at com.faris.game.Main$1.run(Main.java:34)
        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.run(CraftTask.java:53)
        at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349)
        at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:653)
        at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:284)
        at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:598)
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:506)
        at java.lang.Thread.run(Unknown Source)
    
    Line 49 of MazeGenerator:
    Code:
    block.setType(Material.AIR);
    Is there any other way of clearing this huge amount of land? Or should I just generate a new flat world instead (I basically want a flat world).

    Never mind, I just deleted and re-created the world as flat land and it's fine.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 13, 2016
Thread Status:
Not open for further replies.

Share This Page