Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bedrock-provider

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bedrock-provider

Minecraft Bedrock edition chunk provider

  • 3.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
123
decreased by-19.61%
Maintainers
0
Weekly downloads
 
Created
Source

bedrock-provider

NPM version Build Status Discord Gitter Irc Try it on gitpod

Minecraft Bedrock level provider for loading and storing worlds on disk. Supports Minecraft Bedrock Editions 1.16, 1.17, 1.18.0, 1.18.10, 1.18.30 and 1.19.1.

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 })
  await db.open() // Open the database
  // Create a WorldProvider instance from the DB with a prismarine-registry
  const world = new WorldProvider(db, { dimension: 0, registry })
  // Store this chunk in world
  world.save(x, z, cc)
  // Close it
  await db.close() 
  // Done! 😃
}

See tests/ for more usage examples.

API

WorldProvider

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

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 an instance of prismarine-registry, which will be used when doing block related calls.

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.

FAQs

Package last updated on 25 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc