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.

Readme

Keywords

none

Package Sidebar

Install

npm i bedrock-provider

Weekly Downloads

257

Version

3.0.0

License

MIT

Unpacked Size

142 kB

Total Files

41

Last publish

Collaborators

  • extremeheat