Nautical Poseidon Mythology

    bedrock-provider

    3.0.0 • Public • Published

    bedrock-provider

    NPM version Build Status Discord Gitter Irc Try it on gitpod

    Minecraft Bedrock level provider for loading and storing worlds on disk

    Install

    npm i bedrock-provider

    Usage

    Writing example:

    const fs = require('fs')
    const { LevelDB } = require('leveldb-zlib')
    const { WorldProvider } = require('bedrock-provider')
    const registry = require('prismarine-registry')('bedrock_1.17.10')
    const Block = require('prismarine-block')(registry)
    const ChunkColumn = require('prismarine-chunk')(registry)
    
    async function main() {
      const x = 0, z = 0
      const cc = new ChunkColumn({ x, z })
      cc.setBlock({ x: 0, y: 1, z: 0 }, Block.fromStateId(registry.blocksByName.dirt.defaultState))
    
      // Create a new database and store this chunk in there
      const db = new LevelDB('./sample', { createIfMissing: true }) // Create a DB class
      await db.open() // Open the database
      const world = new WorldProvider(db, { dimension: 0 })
      world.save(x, z, cc) // Store this chunk in world
      await db.close() // Close it
      // Done! 😃
    }

    See tests/ for more usage examples.

    API

    WorldProvider

    constructor(db: LevelDB, options?: { dimension: number; version: string; });

    The exported WorldProvider class allows you to load a save file from a LevelDB database. The first parameter is the db (leveldb-zlib instance), and the second is an options object. The options argument takes a dimension ID (overworld or nether or end are 1, 2 and 3).

    The options argument also takes a version, which if not specified will default to the latest version. When you access APIs like getBlock or setBlock, this is the version which will be assumed.

    load(x: number, z: number, full: boolean): Promise

    This returns a ChunkColumn at the specified x and z coordinates. full if we should load biomes, entities, tiles, and other related data ontop of chunks.

    save(x: number, z: number, column: ChunkColumn): Promise

    Saves a ChunkColumn into the database.

    Keywords

    none

    Install

    npm i bedrock-provider

    DownloadsWeekly Downloads

    219

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    142 kB

    Total Files

    41

    Last publish

    Collaborators

    • extremeheat