Web based viewer for servers and bots
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.
npm install prismarine-viewer
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:
The core rendering library. It provides Viewer and WorldView which together make it possible to render a minecraft world. Check its API
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
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
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
All drawing function have a unique id that can be used to replace or erase the primitive.
Draw a line passing through all the points
.
Remove the primitive with the given id from the display.
Stop the server and disconnect users.
npm run jestTest -- -t "1.9.4"