📜  下界矿在哪里生成 (1)

📅  最后修改于: 2023-12-03 14:48:48.945000             🧑  作者: Mango

寻找下界矿生成的位置

以下是一份用于寻找下界矿生成的位置的代码片段。请注意,下界矿只能在地狱中生成,因此必须先到达地狱才能使用此代码。

Java 代码
World world = event.getWorld(); // 得到当前的世界
List<BlockPos> oreLocations = new ArrayList<>(); // 存储找到的下界矿位置
for (Chunk chunk : world.getChunkProvider().getLoadedChunks()) { // 遍历所有已加载的区块
    for (final Map.Entry<BlockPos, IBlockState> entry : chunk.getBlockStateMap().entrySet()) { // 遍历每个方块
        if (entry.getValue().getBlock() == Blocks.NETHER_QUARTZ_ORE) { // 判断方块是否为下界矿石
            oreLocations.add(entry.getKey()); // 添加此位置到列表中
        }
    }
}
if (oreLocations.size() == 0) {
    return; // 没有找到任何下界矿石
}
JavaScript 代码
let oreLocations = []; // 存储找到的下界矿位置
for (let x = -30000000; x < 30000000; x += 16) { // 遍历每个区块
    for (let z = -30000000; z < 30000000; z += 16) {
        let chunk = server.getWorld("world_nether").getChunkAt(x, z); // 得到当前区块
        for (let y = 0; y < 256; y++) { // 遍历每个方块
            let block = chunk.getBlockAt(x, y, z);
            if (block.getType() == Material.NETHER_QUARTZ_ORE) { // 判断方块是否为下界矿石
                oreLocations.push(block.getLocation()); // 添加此位置到列表中
            }
        }
    }
}
if (oreLocations.length == 0) {
    return; // 没有找到任何下界矿石
}
Python 代码
oreLocations = [] # 存储找到的下界矿位置
for chunk in world.getLoadedChunks(): # 遍历所有已加载的区块
    for x in range(0, 16): # 遍历每个方块
        for y in range(0, 256):
            for z in range(0, 16):
                block = chunk.getBlock(x, y, z)
                if block.getType() == Material.NETHER_QUARTZ_ORE: # 判断方块是否为下界矿石
                    oreLocations.append(block.getLocation()) # 添加此位置到列表中
if len(oreLocations) == 0:
    return # 没有找到任何下界矿石

以上代码片段将返回一个 oreLocations 列表,其中包含下界矿的位置。请注意,如果你使用的是一个非常大的地图,可能会需要更多内存来处理大量的区块和方块。建议使用此代码在小规模地图上进行测试,以确保它适用于你的环境。