• Stars
    star
    248
  • Rank 163,560 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Web based viewer for servers and bots

prismarine-viewer

Web based viewer for servers and bots

NPM version Build Status Discord Gitter Irc Issue Hunt

Try it on gitpod

viewer

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

node_modules/.bin/jest --verbose --runInBand --forceExit -t "1.16.4"

More Repositories

1

mineflayer

Create Minecraft bots with a powerful, stable, and high level JavaScript API.
JavaScript
4,956
star
2

node-minecraft-protocol

Parse and serialize minecraft packets, plus authentication and encryption.
JavaScript
1,206
star
3

minecraft-data

Language independent module providing minecraft data for minecraft clients, servers and libraries.
JavaScript
657
star
4

flying-squid

Create Minecraft servers with a powerful, stable, and high level JavaScript API.
JavaScript
531
star
5

prismarine-web-client

Minecraft web client running in your browser
JavaScript
437
star
6

bedrock-protocol

Minecraft Bedrock protocol library, with authentication and encryption
JavaScript
311
star
7

mineflayer-pathfinder

Pathfinding plugin that gives bot the ability to go from A to B
JavaScript
213
star
8

mineflayer-statemachine

A state machine plugin for Mineflayer to aid in designing more complex behavior trees.
TypeScript
108
star
9

node-minecraft-data

Provide easy access to minecraft-data in node.js
JavaScript
100
star
10

prismarine-nbt

An NBT parser for node-minecraft-protocol
JavaScript
93
star
11

prismarine-chunk

A class to hold chunk data for Minecraft
JavaScript
61
star
12

mineflayer-navigate

mineflayer plugin which gives bots a high level 3d navigating API using A*
JavaScript
59
star
13

minecraft-assets

Provide minecraft assets along with json files that help to use them.
59
star
14

node-minecraft-protocol-forge

Plugin to add FML/Forge client support (including auto-versioning) to node-minecraft-protocol
JavaScript
52
star
15

mineflayer-pvp

Adds support for basic PVP and PVE to Mineflayer bots.
TypeScript
50
star
16

prismarine-auth

Microsoft/Xbox Live authentication
JavaScript
48
star
17

node-vec3

3d vector math with robust unit tests
JavaScript
42
star
18

node-yggdrasil

Node.js library to interact with Mojang's authentication system, known as Yggdrasil
JavaScript
40
star
19

prismarine-windows

Represent minecraft windows
JavaScript
37
star
20

mineflayer-radar

(unmaintained) A plugin to give you a web-based radar interface to your mineflayer bot.
JavaScript
36
star
21

mineflayer-collectblock

A simple utility plugin for Mineflayer that add a higher level API for collecting blocks.
TypeScript
36
star
22

prismarine-physics

Provide the physics engine for minecraft entities
JavaScript
35
star
23

prismarine-world

The core implementation of worlds for prismarine
JavaScript
34
star
24

prismarine-chat

A parser for a minecraft chat message
JavaScript
33
star
25

numerous-alpaca

A Minecraft Bedrock Edition server in JavaScript
JavaScript
29
star
26

prismarine-block

Represent a minecraft block with its associated data
JavaScript
29
star
27

prismarine-server

NodeJS Game Server compatible with Minecraft Client
JavaScript
26
star
28

mineflayer-scaffold

mineflayer plugin to build or break blocks to get to a certain point
JavaScript
26
star
29

prismarine-proxy

Provide features to build proxies using Prismarine modules
JavaScript
25
star
30

dazed-sheep

A Minecraft Classic server in JavaScript
JavaScript
24
star
31

MineflayerArmorManager

TypeScript
24
star
32

node-minecraft-wrap

Download and wrap the vanilla minecraft server and client in node.js
JavaScript
24
star
33

prismarine-entity

Represent a minecraft entity
JavaScript
23
star
34

mineflayer-builder

JavaScript
22
star
35

prismarine-schematic

Read and write schematic of any minecraft version, provide them in a convenient and stable API
JavaScript
21
star
36

mineflayer-tool

A tool/weapon selection Mineflayer plugin for automatically selecting the best tool to use for a specific task.
TypeScript
20
star
37

prismarine-item

Represent a minecraft item with its associated data
JavaScript
19
star
38

node-minecraft-assets

Provide minecraft assets in node.js
JavaScript
17
star
39

node-mojangson

A mojangson parser written in node.js
JavaScript
16
star
40

bedrock-provider

Minecraft bedrock level provider for disk and network with caching support
TypeScript
14
star
41

prismarine-contribute

What is PrismarineJS and how to contribute
13
star
42

prismarine-provider-anvil

Anvil Storage Provider implementation.
JavaScript
13
star
43

prismarine-gameplay

A high level gameplay API for making Mineflayer bots.
TypeScript
12
star
44

prismarinejs.github.io

https://prismarinejs.github.io
JavaScript
11
star
45

minecraft-packets

Stores minecraft packets to test implementation of the minecraft protocol
11
star
46

prismarine-realms

Library for interacting with Minecraft Realms
JavaScript
11
star
47

minecraft-wiki-extractor

Extract structured data from the minecraft wiki
JavaScript
10
star
48

prismarine-recipe

Represent minecraft recipes
JavaScript
10
star
49

minecraft-inventory-gui

Render minecraft inventory GUIs in the browser and (soon) headless
JavaScript
10
star
50

diamond-square

A diamond square minecraft generation
JavaScript
9
star
51

minecraft-chunk-dumper

Dumps chunks for any minecraft version
JavaScript
9
star
52

minecraft-classic-protocol

[En][de]code Minecraft 0.30c packets
JavaScript
8
star
53

minecraft-jar-extractor

Extract structured data from the minecraft jar
JavaScript
8
star
54

prismarine-template

A template repository to make it easy to create new prismarine repo
JavaScript
7
star
55

minecraft-data-generator-server

Java
7
star
56

speedrun-challenge-ssgp

JavaScript
7
star
57

mineflayer-cmd

A command handler plugin for Mineflayer.
TypeScript
6
star
58

prismarine-registry

JavaScript
6
star
59

prismarine-biome

Represent a minecraft biome with its associated data
JavaScript
5
star
60

flying-squid-modpe

Flying squid modpe api
JavaScript
4
star
61

mineflayer-test-api

An automated testing library for Mineflayer and Mineflayer plugins with CI/CD.
JavaScript
4
star
62

minecraft-classic-protocol-extension

A plugin for minecraft-classic-protocol that adds experimental and bleeding-edge CPE features
JavaScript
4
star
63

auto-sheep

Automatically update and start dazed-sheep without a githook!
Shell
4
star
64

McDataExtracting

Extract block collision shapes to JSON using Fabric mod loader
Java
4
star
65

node-minecraft-packets

Access minecraft packets examples in node
JavaScript
4
star
66

prismarine-yggdrasil

An implementation of Minecraft's yggdrasil login API
JavaScript
3
star
67

prismarine-rng

JavaScript
3
star
68

gdmc-challenge-2021

The PrismarineJS entry for the 2021 Generative in Design Minecraft Competition.
JavaScript
3
star
69

auto-alpaca

Automatically update and start numerous-alpaca without a githook!
Shell
3
star
70

mineflayer-gptj

JavaScript
3
star
71

prismarine-packet-dumper

Dump minecraft packets
JavaScript
3
star
72

prismarine-updates

Summary of work being done in PrismarineJS modules and user modules, useful for communication
3
star
73

mcdevs-wiki-extractor

Extract structured data from the mcdevs wiki
JavaScript
3
star
74

prismarine-world-sync

A sync proxy to prismarine-world
JavaScript
3
star
75

burger-extractor

Convert burger to minecraft-data
JavaScript
3
star
76

minecraft-assets-pixel-perfection

Assets for the Pixel Perfection pack
GLSL
2
star
77

entity-model-extractor

JavaScript
2
star
78

prismarine-design

Discuss about design and big refactoring that can affects many modules
2
star
79

minecraft-data-auto-updater

Automatically run minecraft data extractors and create pull request for minecraft-data
2
star
80

marketing-and-media

Media/Marketing Materials
1
star
81

prismarine-provider-raw

Raw (prismarine-chunk based) Storage Provider implementation.
JavaScript
1
star
82

prismarine-meta

Make it easy to do chores and maintenance work using the meta package
JavaScript
1
star
83

prismarine-repo-actions

Github Action implementing issue/PR comment commands for repo automation
JavaScript
1
star