- Listen on raw 'text' packet for Bedrock chat (pattern-based chat event doesn't fire reliably on Bedrock) - Brain: add safety reset for stuck pending_status flag - MariaDB: add retry-on-disconnect for all query methods - Suppress harmless punycode deprecation warning from Node.js - Add mineflayer-bedrock lib packages (mineflayer, prismarine-chunk, prismarine-registry) for movement support - Exclude minecraft-data from git (278MB, installed via npm) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .github | ||
| lib | ||
| .gitignore | ||
| .gitpod | ||
| .gitpod.DockerFile | ||
| .npmrc | ||
| example.js | ||
| HISTORY.md | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
prismarine-registry
Creates an dynamic instance of node-minecraft-data.
Usage
const registry = require('prismarine-registry')('1.18')
registry.blocksByName['stone'] // See information about stone
API
mcpc
loadDimensionCodec / writeDimensionCodec
- loads/writes data from dimension codec in login packet
.chatFormattingByName, .chatFormattingById (1.19+)
Contains mapping from chat type ID (numeric or string) to information about how the chat type should be formatted and what the relevant parameters are.
{
'minecraft:chat': { formatString: '<%s> %s', parameters: [ 'sender', 'content' ] },
'minecraft:say_command': { formatString: '[%s] %s', parameters: [ 'sender', 'content' ] },
'minecraft:msg_command': { formatString: '%s whispers to you: %s', parameters: [ 'sender', 'content' ] },
'minecraft:team_msg_command': { formatString: '%s <%s> %s', parameters: [ 'team_name', 'sender', 'content' ] },
'minecraft:emote_command': { formatString: '* %s %s', parameters: [ 'sender', 'content' ] }
}
.dimensionsById, dimensionsByName (1.19+)
Mapping to dimension data object containing dimension name, minY and height.
mcpe
loadItemStates / writeItemStates
- loads/writes data from an item states array inside the bedrock start game packet.
// In a client
const { createClient } = require('bedrock-protocol');
const registry = require('prismarine-registry')('bedrock_1.19.50');
const client = createClient({
'host': '127.0.0.1'
})
client.on('start_game', ({ itemstates, block_network_ids_are_hashes }) => {
registry.handleStartGame({ itemstates, block_network_ids_are_hashes});
})
client.on('item_registry', ({ itemstates }) => {
registry.handleStartGame({ itemstates });
})
// In a server
server.on('connect', (client) => {
const itemstates = registry.writeItemStates()
client.write('start_game', { ...startGamePacket, itemstates }) // version < 1.21.70
client.write('item_registry', { itemstates }) // version >= 1.21.70
})