Socket
Socket
Sign inDemoInstall

prismarine-viewer

Package Overview
Dependencies
867
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    prismarine-viewer

Web based viewer


Version published
Weekly downloads
1.1K
increased by26.95%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

prismarine-viewer

Web based viewer for servers and bots

NPM version Build Status Discord Gitter Irc Issue Hunt

Try it on gitpod

viewer

Supports versions 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.1, 1.16.4, 1.17.1, 1.18.1, 1.19, 1.20.1.

Install

npm install prismarine-viewer

Example

const mineflayer = require('mineflayer')
const mineflayerViewer = require('prismarine-viewer').mineflayer

const bot = mineflayer.createBot({
  username: 'Bot'
})

bot.once('spawn', () => {
  mineflayerViewer(bot, { port: 3000 }) // Start the viewing server on port 3000

  // Draw the path followed by the bot
  const path = [bot.entity.position.clone()]
  bot.on('move', () => {
    if (path[path.length - 1].distanceTo(bot.entity.position) > 1) {
      path.push(bot.entity.position.clone())
      bot.viewer.drawLine('path', path)
    }
  })
})

More examples:

  • First person bot example
  • Record view as video file example
  • Streaming video to a python script example
  • Visualize a world, without a bot example
  • Visualize the world coming from a proxy example
  • Click to move example
  • Use the core api for viewing worlds example
  • Create an electron app with viewer example
  • Create a fully front end viewer with an in memory world example
  • A minecraft web client example, using mineflayer and a websocket proxy example
  • Export parts of worlds as screenshot or 3d models example

Projects using prismarine-viewer

API

prismarine-viewer

viewer

The core rendering library. It provides Viewer and WorldView which together make it possible to render a minecraft world. Check its API

mineflayer

Serve a webserver allowing to visualize the bot surrounding, in first or third person. Comes with drawing functionnalities.

const { mineflayer } = require('prismarine-viewer')

Options:

  • viewDistance view radius, in chunks, default: 6
  • firstPerson is the view first person ? default: false
  • port the port for the webserver, default: 3000

example

standalone

Serve a webserver allowing to visualize a world.

const { standalone } = require('prismarine-viewer')

Options:

  • version the version to use, default: 1.13.2
  • generator a world generator function, default: (x, y, z) => 0
  • center a vec3 to center the view on, default: new Vec3(0, 0, 0)
  • viewDistance view radius, in chunks, default: 6
  • port the port for the webserver, default: 3000

example

headless

Render the bot view and stream it to a file or over TCP.

const { headless } = require('prismarine-viewer')

Options:

  • viewDistance view radius, in chunks, default: 6
  • output the output file or a host:port address to stream to, default: output.mp4
  • frames number of frames to record, -1 for infinite, default: 200
  • width the width of a frame, default: 512
  • height the height of a frame, default: 512

example

Drawing (mineflayer mode)

All drawing function have a unique id that can be used to replace or erase the primitive.

bot.viewer.drawLine (id, points, color=0xff0000)

Draw a line passing through all the points.

bot.viewer.erase (id)

Remove the primitive with the given id from the display.

bot.viewer.close ()

Stop the server and disconnect users.

Tests

npm run jestTest -- -t "1.9.4"

FAQs

Last updated on 31 Dec 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc